Laravel - 字符串到整数状态

Laravel - string to int status

我在模型中有状态常量,我将状态作为整数存储在 table。

CONST STATUS_DONE = 0;
CONST STATUS_NEW = 1;
CONST STATUS_PROCESSING = 2;

当用户发出 API 请求时,他们传入字符串状态而不是整数。示例请求 Class:

public function rules()
{
    return [
        'name'      => 'required',
        'status'    => 'required|in:done,new,processing',
    ];
}

问题是我正在尝试找出将字符串状态转换为 int 以存储在 table 中的好方法,例如:

Task::create([
  'name' => $request->name,
  'status' => // convert to int?
]);

您可以设置一个映射数组,将传入状态映射为一个整数。确保首先进行验证,并考虑大小写问题、间距等,这将导致不匹配。

<?php
$mapping = [
    'done' => STATUS_DONE,
    'new' => STATUS_NEW,
    'processing' => STATUS_PROCESSING 
];

$statusInteger= $mapping[$request->status];