Проверка ввода пользователя в Laravel с помощью ValidatorPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проверка ввода пользователя в Laravel с помощью Validator

Сообщение Anonymous »

Я пытаюсь использовать RegisterController в Laravel, но не могу заставить валидатор работать. Я не понимаю, в чем проблема, потому что он должен просто взять массив и проверить его.

Когда я пытаюсь отправить JSON с правильными полями на маршрут регистрации, я получаю эту ошибку:

Код: Выделить всё

BadMethodCallException: Method validate does not exist.  in file /home/deb85528n3/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php on line 96
Ниже мой код:

Код: Выделить всё

protected function validator(array $data)
{
$validator = Validator::make($data,
[
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'birth_year' => 'required|integer',
'lat' => 'required',
'lon' => 'required',
]);

echo $validator->errors();

if ($validator->fails())
{
return response()->json(['errors'=>$validator->errors()]);
}

if ($validator->passes())
{
$response = "validator passed";
return response()->json($response);
}

}
Я также пробовал использовать Валидатор по-другому:

Код: Выделить всё

public function validator(Request $request){
$validator = Validator::make($request->all(), [
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'birth_year' => 'required|integer|min:4',
'lat' => 'required|numeric',
'lon' => 'required|numeric',
]);
}
Но потом я получаю эту ошибку:

Код: Выделить всё

Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 1 passed to App\Http\Controllers\Auth\RegisterController::validator() must be an instance of App\Http\Controllers\Auth\Request, array given, called in /home/deb85528n3/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php on line 31 in file /home/deb85528n3/app/Http/Controllers/Auth/RegisterController.php on line 103
Отредактировано, чтобы включить весь RegisterController:

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/50583430/validating-user-input-in-laravel-using-the-validator[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»