Laravel - 字符串到int状态

时间:2018-02-13 13:59:56

标签: php laravel-5 laravel-5.5

我在模型中有状态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?
]);

1 个答案:

答案 0 :(得分:1)

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

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

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