在初始验证中验证自定义表单字段


Validate custom form field in laravel auth

我使用的是laravel 5.1.9 LTS。我正在使用开箱即用的laravel的真实功能。我在注册中添加了一个新的表单字段,它没有被验证。我添加的新表单字段。

 <div class="controls">
                                <div class="controls first">
                                    <select name="account_type" class="form-control">
                                        <option value="0" >Select the account type</option>
                                        <option value="1">Buyer</option>
                                        <option value="2">Seller</option>
                                        <option value="3">Agent</option>
                                    </select>
                                </div>
                                <p class="help-block">
                                    {{ $errors->first('account_type') }}
                                </p>
                            </div>

验证部分

protected function validator(array $data)
{
    return Validator::make($data, [
        'email' => 'required|email|max:255|unique:users',
        'account_type' => 'required|min:1',
        'password' => 'required|confirmed|min:6',
    ]);
}

我也把account_type在可填充的保护变量,但仍然没有工作

问题是account_type的value参数作为字符串返回。当你在字符串上调用"min:1"时,它将接受最小长度为1的字符串,这是所有选项的情况。

你可以试着改变这一行,让它返回一个零长度的字符串/null:

<option value>Select the account type</option>

你可以去掉"min:1"这个规则,只保留"required"。