有一个带有选择字段的窗体"状态";,其值必须是"0";草稿";或";出版";。怎么做?现在不起作用。
$this->validate($request, [
'name' => 'required|unique:article_categories' . $category->id,
'description' => 'required|min:200',
'state' => 'draft' || 'published'
]);
您必须使用规则::in([](
$this->validate($request, [
'name' => 'required|unique:article_categories' . $category->id,
'description' => 'required|min:200',
'state' => [
'required',
Rule::in(['draft', 'published']),
]
]);
您已经回答了自己的问题,但只是添加了一个问题:'draft' || 'published'
在PHP中评估为true
。
意味着你实际上在做这件事:
$this->validate($request, [
....
'state' => true
]);
就验证规则中所期望的内容而言,这毫无意义。
正确的方法是如你所说:
$this->validate($request, [
...
'state' => [
'required',
Rule::in(['draft', 'published']),
]
]);