Проверка 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 ответа
Вы должны проверить свой валидатор, прежде чем возникнут какие-либо ошибки. Попробуй это:
if ($v->fails()) {
dd($v->errors);
}
Я думаю, вам нужно позвонить $v->passes
или же $v->fails
во-первых, чтобы он действительно оценивал ваши правила проверки и генерировал ошибки. Тогда вы можете использовать...
dd($v->errors->all());