1

我是 Laravel 的新手,正在尝试弄清楚如何验证用户输入。

我有一个包含多个文本字段、一个文本区域和一个复选框的表单:

      {{ 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 复选框值,所以我不明白为什么它不会验证?

如果我添加任何新字段或更改字段名称,这些字段也不会验证。

我错过了什么吗?

4

1 回答 1

2

我刚刚意识到我的模型中有一个明显的新手错误。我忽略了将 terms_and_conditions 添加为可填充字段。该表单现在可以正确验证,但这引出了另一个问题,是否可以将该字段排除在添加到数据库中?我宁愿在数据库中没有该列,但没有它 Laravel 会抛出异常。

于 2014-07-10T15:25:13.907 回答