在laravel auth中验证自定义表单字段

时间:2015-08-29 12:42:10

标签: php laravel laravel-5.1

我正在使用laravel 5.1.9 LTS。我正在使用开箱即用的laravel的auth功能。我在注册时添加了一个新的表单字段,但未进行验证。 我添加的新表单字段。

 <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放在可填充的受保护变量中,但仍然无法正常工作

1 个答案:

答案 0 :(得分:1)

问题是account_type的value参数是作为字符串返回的。当你在一个字符串上调用“min:1”时,它将接受最小长度为1的字符串,你所拥有的所有选项都是如此。

您可以尝试更改此行,以便返回零lenght / null的字符串:

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

您可以删除规则“min:1”并将其保留为“required”。