我在模型中有状态const,我将状态存储为表中的整数。
CONST STATUS_DONE = 0;
CONST STATUS_NEW = 1;
CONST STATUS_PROCESSING = 2;
当用户发出API请求时,它们会传入字符串状态而不是整数。示例请求类:
public function rules()
{
return [
'name' => 'required',
'status' => 'required|in:done,new,processing',
];
}
问题是我试图弄清楚将字符串状态转换为int的好方法是存储在表中,例如:
Task::create([
'name' => $request->name,
'status' => // convert to int?
]);
答案 0 :(得分:1)
您可以设置一个映射数组,将传入状态映射为整数。确保首先进行验证,并考虑案例问题,间距等,这将导致不匹配。
<?php
$mapping = [
'done' => STATUS_DONE,
'new' => STATUS_NEW,
'processing' => STATUS_PROCESSING
];
$statusInteger= $mapping[$request->status];