【问题标题】:Laravel, how to validate an enum columnLaravel,如何验证枚举列
【发布时间】:2019-08-17 11:31:44
【问题描述】:

我正在尝试在 laravel 中进行枚举列验证。这是我的验证器的代码。

/**
 * Returns the rules and messages for validating this creation
 */
public static function ValidationBook($except = [], $append = []) {
    $book = ['rules' => [], 'messages' => []];
    $arr = config('constants.publication_statuses');
    $arrKeys = array_keys($arr);
    $book['rules'] = [
        'concert.title' => 'required|string',
        'concert.user_id' => 'required|exists:users,id',
        'concert.type' => [
            'required',
            Rule::in(['public', 'private']),
        ],
        'concert.status' => 'required',
        'concert.closes_on' => 'nullable'
    ];
    $book['messages'] = [

        'concert.title.required' => 'El título es requerido.',
        'concert.title.string' => 'El título debe ser un texto',

        'concert.user_id.exists' => 'Se debe ingresar un usuario válido.',

        'concert.type.required' => 'El tipo es requerido.',

        'concert.status.required' => 'El status es requerido.',
    ];
    if (!empty($except)) {
        $except = array_flip($except);
        $book['rules'] = array_diff_key($book['rules'], $except);
    }
    if (!empty($append)) {
        $book = array_merge_recursive($book, $append);
    }
    return $book;
}

枚举列是type 列。我也试过'concert.type' => 'required|in:public,private'

然后我使用以下代码创建我的验证器:

$vb = Concert::ValidationBook($except, $append);
$validator = Validator::make($data, $vb['rules'], $vb['messages']);

但由于某种原因,当我通过 Postman 发送帖子时,我收到了"detail": "Undefined index: concert.type"。 即使我的数据是:

{
    "concert": {
        "title": "Title",
        "type": "novalidtype",
        "status": "open"
    }
}

提前致谢

【问题讨论】:

标签: laravel eloquent laravel-validation


【解决方案1】:

一般enum会在数据库中设置,前端是一个下拉列表

$table->enum('concert_type', ['public', 'private']);

不过你可以试试这个解决方案

'concert_type' => 'in:public,private', // 公共或私有值

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2020-05-07
    • 1970-01-01
    • 2010-09-06
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多