如何在Laravel PHP中验证下拉列表?

zac*_*con 6 php laravel

情况:

在模型下,我有一个user.php处理有关将用户添加到网站的所有验证.

这是代码的(部分):

public static $add_rules = array(
   'last_name'             => 'required',
   'first_name'            => 'required',
   'email'                 => 'required|unique:users,email',
   'username'              => 'required|alpha_num|min: 5|unique:users,username',
   'password'              => 'required|min: 4|same:password_confirmation',
   'password_confirmation' => 'required',
   'user_role'             => 'required|not_in:-- Choose User Type --'
);
Run Code Online (Sandbox Code Playgroud)

user_role 是下拉列表的ID,如下所示:

<select name="user_type_id" class="form-control" id="user_role">
<option value="0">-- Choose User Type --</option>
@if(Session::get("user_type") == "superuser")
     {
     @foreach($user_types as $ut)
         <option value="{{$ut['id']}}">
             {{ ucwords($ut["user_type"]) }}
         </option>
     @endforeach
     }
@else{
     <option value="Regular">Regular</option>
}@endif
</select>
Run Code Online (Sandbox Code Playgroud)

基本上,在那里发生的事情是下拉列表中填充了用户类型,无论它们是什么.但它总是有第一个'选项' -- Choose User Type --.

问题:

问题是,用户可以使用该选项并添加用户.我有一个javascript代码阻止这个并在弹出窗口中输出错误消息,但它很难看,并且与网站的其他错误消息不一致.

所以我把它添加到了规则中.需要对其进行验证,使其仅接受默认-- Choose User Type --选项以外的任何内容.

我试过的:

not_in 不幸的是,没有工作.

我可以得到一些帮助吗?

谢谢.

Kem*_*lah 10

你没有使用not_in正确的方法.您应该传入不允许的值,而不是这些值的表示.

'user_role' => 'required|not_in:0'
Run Code Online (Sandbox Code Playgroud)


小智 5

您有一个名为“ user_type_id”的选择,但您正在尝试验证一个名为“ user_role”的字段