Проверка запроса Laravel 5.7 не работает должным образом

Я использую Laravel для отправки формы. Вот мои маршруты web.php:

Route::middleware(['auth'])->prefix('account')->namespace('Account')->group(function () {
    Route::get('informations', 'AccountController@index')->name('account.informations');
    Route::post('informations', 'AccountController@update')->name('account.informations.post');
});

Мой контроллер AccountController.php:

/**
 * @param UpdateMember $request
 * @return \Illuminate\Http\RedirectResponse
 */
public function update(UpdateUser $request)
{
    dd($request->all());
    $user = User::where('id', Auth::user()->id)
        ->update($request->all());

    return redirect()->route('account.informations');
}

И мой UpdateUser.php:

/**
 * Determine if the user is authorized to make this request.
 *
 * @return bool
 */
public function authorize()
{
    return true;
}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'lastname' => 'required|string|max:255',
        'firstname' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users|confirmed',
        'password' => 'required|string|min:6|confirmed',
    ];
}

Моя проблема: когда я использую UserUpdate $ request в своем контроллере, я не достигаю функции, dd($request->all()) не отображается.

Но если я заменю:

public function update(UpdateUser $request)

По

public function update(Request $request)

Достигнут мой контроллер. Что я делаю не так?

Это означает, что произошла ошибка проверки или авторизации. FormRequests - это validated, когда они разрешены, то есть до вызова метода на вашем контроллере.

lagbox 06.09.2018 16:28

Ошибки проверки сохраняются в сеансе, поэтому вы сможете увидеть, какая часть проверки не удалась.

James Cook 06.09.2018 16:32

Ах да, я забыл включить просмотр ошибок ... Я такой тупой. Спасибо

Vincent Decaux 06.09.2018 16:32

В этом нет ничего глупого!

James Cook 06.09.2018 16:38

@VincentDecaux, не могли бы вы немного объяснить, как вы решили? Я действительно застрял.

Haseeb Zulfiqar 12.11.2018 05:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
932
2

Ответы 2

как насчет уникальной проверки поля, такой как электронная почта, потому что ваши правила проверки возвращают сообщение об ошибке, уже существующее при обновлении существующей записи. Это можно решить как на примере ниже

    public function rules()
{
    $client = Client::find($this->client);
    return [
        'name' => 'required|string',
        'address' => 'required|string',
        'gender' => 'required|string',
        'dob' => 'required|string',
        'phone' => 'required|string',
        'email' => 'required|unique:clients,email,' . $client->id,
        'password' => 'regex:/^[0-9a-zA-Z]*$/',
        'profile-photo' => 'image|mimes:jpg,png,jpeg',
        'c_name' => 'nullable|regex:/^[a-zA-Z ]*$/',
        'c_address' => 'nullable|regex:/^[a-zA-Z ]*$/',
        'c_email' => 'nullable|email|unique:clients,company_email,'. $client->id,
        'c_contact' => 'nullable|regex:/^[0-9]*$/',
    ];
}

В моем случае причина заключалась в том, что я забыл добавить «Accept: application / json» в заголовок запроса. После добавления шапки все заработало нормально

Другие вопросы по теме