Итак, у меня есть три формы на одной странице. Один из них - изменить изображение пользователя, другое - обновить личную информацию, а последняя форма - установить новый пароль. Моя проблема здесь в том, что я получаю ошибки проверки в полях пароля и пароля, даже если я пытаюсь обновить некоторую информацию (вторая форма).Laravel 5 Несколько правил проверки формы
я создал два запроса:
UserEditRequest:
class UserEditRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'firstname' => 'required',
'lastname' => 'required'
];
}
}
UserUpdatePasswordRequest:
class UserUpdatePasswordRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'password' => 'required|confirmed|min:6',
'password_confirmation' => 'required|min:6',
];
}
}
в UserController UpdatePassword:
public function updatePassword(UserUpdatePasswordRequest $request, $id)
{
$user = User::findOrFail($id);
$user->password = bcrypt($request->get('password'));
$user->save();
return redirect()->route('user.edit',$id)->with('success','Password changed.');
}
postEdit где я обрабатывать личные данные и изменения аватаров:
public function postEdit(UserEditRequest $request, $id)
{
dd($request->all());
$user = User::findOrFail($id);
if($request->get('avatar'))
{
$destinationPath = public_path() . '/avatars/' . $user->id . '/';
$fileName = $user->id . '.' . $request->file('avatar')->getClientOriginalExtension();
$request->file('avatar')->move($destinationPath, $fileName);
$user->avatar = 'avatars/' . $user->id . '/' . $fileName;
$user->save();
return redirect()->route('user.edit',$id)->with('success','User avatar modified.');
}
$user->fill($request->input())->save();
return redirect()->route('user.edit',$id)->with('success','User details modified.');
}
QUICKY мои маршруты:
Route::group(['prefix' => 'user', 'as' => 'user.'], function() {
Route::get('profile/{userid}', ['as' => 'edit', 'uses' => '[email protected]']);
Route::post('profile/{userid}', ['as' => 'edit', 'uses' => '[email protected]']);
Route::post('profile/{userid}', ['as' => 'updatepassword', 'uses' => '[email protected]']);
});
});
Да, я сделал три разных маршрута, и он работает благодаря. – user3813360
Рад, что это помогло. – Donkarnash