Я использую 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)
Достигнут мой контроллер. Что я делаю не так?
Ошибки проверки сохраняются в сеансе, поэтому вы сможете увидеть, какая часть проверки не удалась.
Ах да, я забыл включить просмотр ошибок ... Я такой тупой. Спасибо
В этом нет ничего глупого!
@VincentDecaux, не могли бы вы немного объяснить, как вы решили? Я действительно застрял.






как насчет уникальной проверки поля, такой как электронная почта, потому что ваши правила проверки возвращают сообщение об ошибке, уже существующее при обновлении существующей записи. Это можно решить как на примере ниже
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» в заголовок запроса. После добавления шапки все заработало нормально
Это означает, что произошла ошибка проверки или авторизации. FormRequests - это
validated, когда они разрешены, то есть до вызова метода на вашем контроллере.