Проверка запросов Laravel 5.7 не работает должным образом - PullRequest
0 голосов
/ 06 сентября 2018

Я использую 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 $ в моем контроллере, я не достигаю этой функции, dd($request->all()) не отображается.

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

public function update(UpdateUser $request)

К

public function update(Request $request)

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

1 Ответ

0 голосов
/ 04 января 2019

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

    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]*$/',
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...