1

これはおそらく簡単な修正です...しかし、検証を機能させることができません。

テストを簡略化してこれに戻しました...

    $input = array(
       'name' => ''
    );

    $rules = array(
       'name' => 'required|min:3|max:50|alpha'

    );

    $v = Validator::make($input, $rules);

また、「name」が必須であり、他のすべてのルールが含まれている場合でも、バリデーターにエラーは含まれていません。

dd($v->errors); // returns NULL

でも

dd($v->fails()); // returns bool(true)

エラーメッセージが表示されないのはなぜですか?$ vオブジェクト全体をダンプすると、どこにも表示されるメッセージがありません。非常に混乱しています...感謝します。ありがとう。

- - 編集

これをさらに単純化しました。私はこれをテストするために直接ビューに入れました...

<?php

$input = array(
   'name' => ''
);

$rules = array(
   'name' => 'required'
);

$v = Validator::make($input, $rules);

dd($v);

?>

私はまだまったく同じ問題を抱えていますか?

これが$vオブジェクトです

object(Laravel\Validator)#32 (9) {

  ["attributes"]=>
  array(1) {
    ["name"]=>
    string(0) ""
  }
  ["errors"]=>
  NULL
  ["rules":protected]=>
  array(1) {
    ["name"]=>
    array(1) {
      [0]=>
      string(8) "required"
    }
  }
  ["messages":protected]=>
  array(0) {
  }
  ["db":protected]=>
  NULL
  ["bundle":protected]=>
  string(11) "application"
  ["language":protected]=>
  NULL
  ["size_rules":protected]=>
  array(4) {
    [0]=>
    string(4) "size"
    [1]=>
    string(7) "between"
    [2]=>
    string(3) "min"
    [3]=>
    string(3) "max"
  }
  ["numeric_rules":protected]=>
  array(2) {
    [0]=>
    string(7) "numeric"
    [1]=>
    string(7) "integer"
  }
}

インストール/セットアップの何かが壊れていますか?

4

2 に答える 2

3

エラーが発生する前に、バリデーターをテストする必要があります。これを試して:

if ($v->fails()) {
  dd($v->errors);
}
于 2012-12-30T02:11:41.513 に答える
2

実際に検証ルールを評価してエラーを生成するには、$v->passesまたは最初に呼び出す必要があると思います。$v->failsその後、使用することができます...

dd($v->errors->all());
于 2012-12-30T02:11:56.773 に答える