如何使用laravel验证验证并显示至少一个下拉列表

时间:2017-11-10 11:47:30

标签: php laravel laravel-5 laravel-5.4

我有一个表单,表单有两个下拉列表。如果我提交表单,我需要验证并显示至少需要一个下拉列表。我添加了一些功能但没有工作。

create.blade.php

<select class="form-control" id="user" name="user">
     <option value="0"> select user </option>
     <option value="1"> jane </option>
     <option value="2"> peter </option>
</select>

<select class="form-control" id="email" name="email">
     <option value="0"> select email</option>
     <option value="1"> jane@gmail.com </option>
     <option value="2"> peter@gmail.com </option>
</select>

CreateRequest.php

public function rules()
{
   $rules = [
             'user' => 'required_without_all:email|not_in:0',
             'email' => 'required_without_all:user|not_in:0',
            ];
   return $rules;
}

2 个答案:

答案 0 :(得分:1)

而不是required_without_all使用required_without。前者接受字段列表,而您只需要一个字段。

此外,请跳过为select占位符使用值“0”,然后将其从验证中删除。

例如:

    <select class="form-control" id="user" name="user" placeholder="Select user">
         <option value=""> select user </option>
         <option value="1"> jane </option>
         <option value="2"> peter </option>
    </select>

和验证:

'user' => 'required_without:email',

答案 1 :(得分:0)

使用required_without这可以解决您的问题。

$rules = [
    'user' => 'required_without:email|not_in:0',
    'email' => 'required_without:user|not_in:0',
];

希望这有帮助!