Jac*_*pia 1 laravel eloquent laravel-validation
我正在尝试在 Laravel 中进行枚举列验证。这是我的验证器的代码。
\n\n/**\n * Returns the rules and messages for validating this creation\n */\npublic static function ValidationBook($except = [], $append = []) {\n $book = [\'rules\' => [], \'messages\' => []];\n $arr = config(\'constants.publication_statuses\');\n $arrKeys = array_keys($arr);\n $book[\'rules\'] = [\n \'concert.title\' => \'required|string\',\n \'concert.user_id\' => \'required|exists:users,id\',\n \'concert.type\' => [\n \'required\',\n Rule::in([\'public\', \'private\']),\n ],\n \'concert.status\' => \'required\',\n \'concert.closes_on\' => \'nullable\'\n ];\n $book[\'messages\'] = [\n\n \'concert.title.required\' => \'El t\xc3\xadtulo es requerido.\',\n \'concert.title.string\' => \'El t\xc3\xadtulo debe ser un texto\',\n\n \'concert.user_id.exists\' => \'Se debe ingresar un usuario v\xc3\xa1lido.\',\n\n \'concert.type.required\' => \'El tipo es requerido.\',\n\n \'concert.status.required\' => \'El status es requerido.\',\n ];\n if (!empty($except)) {\n $except = array_flip($except);\n $book[\'rules\'] = array_diff_key($book[\'rules\'], $except);\n }\n if (!empty($append)) {\n $book = array_merge_recursive($book, $append);\n }\n return $book;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n枚举列就是type列。我也尝试过这样做\'concert.type\' => \'required|in:public,private\'
然后我使用以下代码创建验证器:
\n\n$vb = Concert::ValidationBook($except, $append);\n$validator = Validator::make($data, $vb[\'rules\'], $vb[\'messages\']);\nRun Code Online (Sandbox Code Playgroud)\n\n但由于某种原因,当我通过邮递员发送帖子时,我得到了"detail": "Undefined index: concert.type"。\n即使我的数据是:
{\n "concert": {\n "title": "Title",\n "type": "novalidtype",\n "status": "open"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n提前致谢
\n小智 5
通常枚举会像数据库一样设置,前端将是一个下拉列表
$table->enum('concert_type', ['public', 'private']);
不过你可以尝试这个解决方案
'concert_type' => 'in:public,private',// 公共或私有值
| 归档时间: |
|
| 查看次数: |
4318 次 |
| 最近记录: |