Laravel验证未显示错误

时间:2012-12-30 01:47:17

标签: php laravel

这可能是一个简单的修复......但我无法通过验证工作。

我已将测试简化为此...

    $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"
  }
}

我的安装/设置中的某些内容是否已损坏?

2 个答案:

答案 0 :(得分:3)

您必须在出现任何错误之前测试您的Validator。试试这个:

if ($v->fails()) {
  dd($v->errors);
}

答案 1 :(得分:2)

我认为您需要先调用$v->passes$v->fails,以便实际评估验证规则并生成错误。然后你可以使用......

dd($v->errors->all());