Laravel 5.7请求验证无法按预期进行

时间:2018-09-06 14:15:35

标签: php laravel

我使用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)

到达我的控制器。我该怎么办?

2 个答案:

答案 0 :(得分:0)

关于唯一字段验证(例如电子邮件)的原因是什么,因为在更新现有记录时,您的验证规则将返回一条错误电子邮件,该电子邮件已经存在。可以通过以下示例解决此问题

mixin SomeClass<T extends SomeOtherClass>
on State<T>
implements ThirdClass

答案 1 :(得分:0)

在我的情况下,原因是我在请求标头中添加了“ Accept:application / json”。添加该标头后,一切正常