Laravel Route资源既有GET又有POST

时间:2017-11-07 21:30:57

标签: php laravel post get routes

我有Route

Route::group([ 'middleware' => ['auth','lang']], function() {

    // SETTINGS
    Route::namespace( 'Settings' )->prefix( 'settings' )->group( function () {

        // INDEX
        Route::get( '/', 'SettingsController@index' );

        // ACCOUNTS
        Route::resource( 'accounts', 'AccountController', ['only' => ['index','store','edit','update']] );

        // TAGS
        Route::resource( 'tags', 'TagController', ['only' => ['index','destroy']] );

        // PROFILE
        Route::get('profile', 'ProfileController@index');
        Route::post('profile', 'ProfileController@update');

    }); 

我可以将两个PROFILE加入resource的一个吗?每当我尝试使用Route::resource( 'profile', 'ProfileController', ['only' => ['index','update']] )时,它都会给我一个错误,即不允许使用该方法 - 405 (Method Not Allowed)。我认为它只是找不到update一个?我真的不确定会出现什么问题。

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为在资源丰富的控制器的情况下,帖子将默认为商店方法,而不是更新。

所以你要发布到未定义的商店方法,不允许使用403方法。

要解决此问题,请将您的请求更改为PUT或将代码更改为Route::resource( 'profile', 'ProfileController', ['only' => ['index','store']] )请注意,如果您这样做,则必须将更新功能的内容移至商店。

有关详细信息,请结帐https://laravel.com/docs/5.5/controllers#resource-controllers