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

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

问题描述:

I have a form that form has two dropdown. If I submit form I need to validate and show at-least one dropdown required. I have added some functionality but not working.

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;
}

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

create.blade.php strong> p>

 &lt; select class  =“form-control”id =“user”name =“user”&gt; 
&lt; option value =“0”&gt; 选择用户&lt; /选项&gt; 
&lt; option value =“1”&gt;  jane&lt; / option&gt; 
&lt; option value =“2”&gt;  peter&lt; / option&gt; 
&lt; / select&gt; 
 
&lt; select class =“form-control”id =“email”name =“email”&gt; 
&lt; option value =“0”&gt; 选择电子邮件&lt; / option&gt; 
&lt; option value =“1”&gt;  jane@gmail.com&lt; / option&gt; 
&lt; option value =“2”&gt;  peter@gmail.com&lt; / option&gt; 
&lt; / select&gt; 
  code>  pre> 
 
 

CreateRequest.php strong> p> \ n

 公共职能规则()
 {
 $ rules = [
'user'=&gt;  'required_without_all:email | not_in:0',
'email'=&gt;  'required_without_all:user | not_in:0',
]; 
返回$ rules; 
} 
  code>  pre> 
  div>

Instead of required_without_all use required_without. The former accepts a list of fields, whereas you only need one.

Also, skip using value '0' for your select placeholder, and then remove that from your validation.

For example:

    <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>

and the validation:

'user' => 'required_without:email',

Use required_without this will solve your problem.

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

Hope this helps!