Я создал новый запрос с помощью команды php artisan. Когда я отправляю свою форму для проверки с помощью встроенного запроса laravel в ajax, он вернет ответ проверки корректно, однако, когда я отправляю его и хочу проверить его с новым запросом, созданным ранее с помощью php artisan, он возвращает все входы неверно, но если я устанавливаю правила в массиве в контроллере и использую его там, он работает правильно.
public function postIndex(Request $request)
{
$data = $request->get('form');
parse_str($data, $data);
// it works and return validation correctly
$rules = [some rules here];
$validity = Validator::make($data, $rules);
}
public function postIndex(newRequest $request)
{
$data = $request->get('form');
parse_str($data, $data);
// but this one returns all validations messages even if they are or not valid!!!
$validity = Validator::make($data);
}
Как я могу это исправить?
благодаря
Прежде всего, $data
не определен в вашем коде, и вам не нужно вызывать Validator
при проверке с помощью созданного пользователем запроса, поэтому ваш метод должен быть
public function postIndex(newRequest $request)
{
//Do whatever here
}
И просто поймайте ошибки на вашем обратном вызове ajax
error: function(data){
var errors = data.responseJSON;
console.log(errors);
}
$data
в своем примере, эта строка: $validity = Validator::make($data);
не обязательно.
$data
не определен в вашем коде. Вы не должны проходить валидацию в контроллере, если используете FormRequest с правилами валидации.