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

モデルに明らかな noob エラーがあることに気付きました。入力可能なフィールドとして terms_and_conditions を追加するのを怠っていました。フォームは適切に検証されるようになりましたが、別の疑問が生じます。そのフィールドをデータベースに追加しないようにすることは可能ですか? データベースにその列を入れたくないのですが、Laravelはそれがないと例外をスローします。

于 2014-07-10T15:25:13.907 に答える