Я слишком много newb, чтобы выяснить, как правильно отслеживать это, поэтому надеемся, что кто-то здесь может мне помочь.Laravel 5 Validation Not Catching Errors
Валидатор больше не работает в моем приложении Laravel 5. Он не ломает ошибок. Все проходит. Я сузил мой код так, что я делаю простой кубик и сваливать на валидатор на форме представления, например, так:
public function postRegister(Request $request){
$validator = $this->registrar->validator($request->all());
dd($validator);
}
Метод Регистратор валидатор:
public function validator(array $data)
{
return Validator::make($data, [
'username' => array('required, regex:/^[a-zA-Z0-9\-\s]+$/, max:20'),
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'honeyfield' => 'size:0',
'unhuman' => 'boolean:0',
'honeytime' => 'honeytimer:7'
]);
}
(«honeytimer '- это специальная проверка, настроенная с помощью поставщика услуг Validator).
Теперь, если я отправлю заполненную ошибкой форму, я возвращаю объект Validator со всеми определенными правилами, но пустым массивом #failedRules, и если я умру и дамп $ request, мешок с ошибкой отсутствует.
Если я умру и сбрасываю $ validtor-> fail(), он возвращает true, но когда я пытаюсь получить массив с помощью $ validator-> failed(), он пуст.
Взяв дополнительную информацию (с особой благодарностью @shaddy за помощь в ее устранении), регулярный метод (ниже) сначала проверяет, не прошла ли проверка, но она, похоже, не регистрирует ее, потому что он просто продолжается и пытается создать пользователя в любом случае.
public function postRegister(Request $request)
{
$validator = $this->registrar->validator($request->all());
if($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$this->auth->login($this->registrar->create($request->all()));
\Session::flash('new_registration', true);
return redirect()->intended('/');
}
Все это работало правильно, когда оно было впервые реализовано. Таким образом, это явно некоторые изменения, которые я сделал за последние пару дней в какой-то другой части приложения, которая вызывает это. Естественно, я тестировал все, что мог придумать (с точки зрения изменений, которые я сделал), но ничего, похоже, не имеет никакого значения.
Может ли это иметь какое-то отношение к порядку, в котором загружаются классы? Что мне здесь не хватает? Я уверен, что это нечто очевидное, но я действительно мог бы использовать некоторые советы. Заранее спасибо.
См. Мой ответ [здесь] (http://stackoverflow.com/questions/30430983/laravel-5-construct-argument-passing-error/30431217#30431217) – shaddy
Спасибо @shaddy, но я пытаюсь выяснить почему валидатор не работает в первую очередь. Я знаю о запросах формы, но это еще один способ управления проверкой. Он не решает проблему недействительной валидатора (которая отличается от проблемы в указанном вами вопросе). Однако я ценю вход. Еще раз спасибо. :-) – DonnaJo