我是Laravel的新手,正在尝试弄清楚如何验证用户输入。
我有一个包含多个文本字段的表单,一个textarea和一个复选框:
{{ Form::text('firstname', '', ['placeholder' => 'First Name', 'class' => 'form-control']) }}
{{ Form::text('lastname', '', ['placeholder' => 'Last Name', 'class' => 'form-control']) }}
{{ Form::email('email', '', ['placeholder' => 'Email', 'class' => 'form-control']) }}
{{ Form::textarea('question', '', ['placeholder' => 'Question', 'class' => 'form-control']) }}
{{ Form::checkbox('terms_and_conditions', 'yes') }}
{{ Form::label('terms_and_conditions', 'I agree to terms and conditions') }}
验证规则是:
public static $rules = array(
'firstname' => 'required|between:2,20',
'lastname' => 'required|between: 2,30',
'email' => 'required|email',
'question' => 'required|max: 5000',
'terms_and_conditions' => 'required|accepted',
);
文本字段都按预期验证,但我无法获取复选框字段进行验证。我回显了视图的$ input的json并且可以验证模型是否正在接收terms_and_conditions复选框值,所以我不明白为什么它不会验证?
如果我添加任何新字段或更改字段名称,那么这些字段也不会验证。
我错过了什么吗?
答案 0 :(得分:2)
我刚刚意识到我的模型中有一个明显的noob错误。我忽略了将terms_and_conditions添加为可填充字段。表单现在可以正确验证,但这又引出了另一个问题,是否可以排除该字段被添加到数据库中?我宁愿在数据库中没有该列,但Laravel会在没有它的情况下抛出异常。