#laravel #validation
#laravel #проверка
Вопрос:
У меня проблемы с проверкой запроса в Laravel, когда данные запроса проходят проверку, все в порядке, но затем данные являются недопустимым ответом сервера с 404
Запрос пользователя
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'sometimes|required|unique:users,Name|min:5|max:30'
];
}
Пользовательский контроллер
public function update(UserRequest $request, $id)
{
$token = JWTAuth::getToken();
$tokenData = JWTAuth::getPayload($token)->toArray();
if ($request->name != null) {
if (User::where('id', $tokenData['idUser'])->update(['Name' => $request->name])) {
$status = true;
} else {
$status = false;
}
}
return response()->json(['status' => $status]);
}
Комментарии:
1. пожалуйста, укажите код метода вашего контроллера
2. проверьте свою маршрутизацию на routes/web.php
3. я не использую веб-маршруты, файл чист
Ответ №1:
Попробуйте с этим
public function update(UserRequest $request, $id)
{
$token = JWTAuth::getToken();
$tokenData = JWTAuth::getPayload($token)->toArray();
$validated = $request->validated();
if ($validated) {
if (User::where('id', $tokenData['idUser'])->update(['Name' => $request->name])) {
$status = true;
} else {
$status = false;
}
return response()->json(['status' => $status]);
}
else {
return redirect()->back()->withErrors($validated);
}
}
Надеюсь, это поможет 🙂
Комментарии:
1. я хотел бы ответить на ошибку как JSON, я делаю: else return response()-> json([‘status’ => false, ‘error’ => $validated]); — перенаправляет меня на ‘/’. Выполняется какое-либо промежуточное программное обеспечение? (Laravel 5.8)
2. Пожалуйста, укажите свой код, связанный с этим действием, например, откуда вызывается этот метод, а также ваше промежуточное программное обеспечение и маршруты, связанные с этим действием