我有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
一个?我真的不确定会出现什么问题。
答案 0 :(得分:1)
这种情况正在发生,因为在资源丰富的控制器的情况下,帖子将默认为商店方法,而不是更新。
所以你要发布到未定义的商店方法,不允许使用403方法。
要解决此问题,请将您的请求更改为PUT或将代码更改为Route::resource( 'profile', 'ProfileController', ['only' => ['index','store']] )
请注意,如果您这样做,则必须将更新功能的内容移至商店。
有关详细信息,请结帐https://laravel.com/docs/5.5/controllers#resource-controllers