Laravel没有达到更新方法并再次返回编辑视图 - 路由错误

问题描述 投票:0回答:1

当我在编辑视图中单击“保存”时,我的路由将带回我的编辑视图而不是索引视图,并且永远不会达到我的更新方法。

我注意到,如果从方法参数中删除“UsersRequest $ request”,我会到达更新方法。不知道为什么,如果它有关系,但我需要$ request来进行更新(参见下面的控制器代码):

路线:

Route::get('/users', 'UsersController@index')->name('users.index');
Route::patch('/users/{id}', 
[
    'as' => 'users.update',
    'uses' => 'UsersController@update'
]);
Route::get('/users/{id}/edit', 'UsersController@edit');

控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\UsersRequest;


//public function update($id, UsersRequest $request)
public function update($id)   //- with $request removed, the index view is displayed
{       
    $user = \Auth::user();
    $user->update($request->all());

    return view('users.index');
}

编辑视图:

{!! Form::model($user, ['method' => 'PATCH', 'action' => [ 'UsersController@update', 'user' => $user->id ] ]) !!}


{!! Form::submit('Save', ['class'=>'btn primary']) !!}
{!! Form::close() !!}

单击保存按钮后的网络

URL                                                 Protocol    Method  Result      
/myapp/public/users/1                               HTTP        POST    302     Goes for the update route
http://000.000.000.000/myapp/public/users/1/edit    HTTP        POST    200     Redirects to the edit route??

.ENV

 APP_URL=http://000.000.000.000/myapp/public
laravel laravel-5
1个回答
1
投票

您的UsersRequest表单请求中存在任何验证失败。验证失败后,会将您重定向回您的来源,即编辑视图。您的编辑视图应该更新以显示验证错误,以便您的用户知道需要修复哪些字段。

删除UsersRequest $request参数时它的工作原理是不再执行验证。

© www.soinside.com 2019 - 2024. All rights reserved.