Php Laravel资源调用了错误的方法
我和拉威尔在一起几个小时后就发疯了 这是我的Php Laravel资源调用了错误的方法,php,laravel,Php,Laravel,我和拉威尔在一起几个小时后就发疯了 这是我的web.php文件: // Admin Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'admin'], 'namespace' => 'Admin'], function() { Route::resource('cities', 'CitiesController'); Route::resource('stores', 'StoresContro
web.php
文件:
// Admin
Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'admin'], 'namespace' => 'Admin'], function() {
Route::resource('cities', 'CitiesController');
Route::resource('stores', 'StoresController');
});
我正在访问http://localhost:3000/admin/cities/create
我从show
方法中得到一个错误!为什么URL调用show
方法而不是create
?为什么我要删除Route::resource
并用详细的路由替换它呢?那太疯狂了
更新
我的路线:列表
:
| | GET|HEAD | admin | admin | App\Http\Controllers\Admin\DashboardController@index | web,auth,admin |
| | GET|HEAD | admin/cities | cities.index | App\Http\Controllers\Admin\CityController@index | web,auth,admin |
| | POST | admin/cities | cities.store | App\Http\Controllers\Admin\CityController@store | web,auth,admin |
| | GET|HEAD | admin/cities/create | cities.create | App\Http\Controllers\Admin\CityController@create | web,auth,admin |
| | GET|HEAD | admin/cities/{city} | cities.show | App\Http\Controllers\Admin\CityController@show | web,auth,admin |
| | PUT|PATCH | admin/cities/{city} | cities.update | App\Http\Controllers\Admin\CityController@update | web,auth,admin |
| | DELETE | admin/cities/{city} | cities.destroy | App\Http\Controllers\Admin\CityController@destroy | web,auth,admin |
| | GET|HEAD | admin/cities/{city}/edit | cities.edit | App\Http\Controllers\Admin\CityController@edit | web,auth,admin |
| | GET|HEAD | admin/stores | stores.index | App\Http\Controllers\Admin\StoreController@index | web,auth,admin |
| | POST | admin/stores | stores.store | App\Http\Controllers\Admin\StoreController@store | web,auth,admin |
| | GET|HEAD | admin/stores/create | stores.create | App\Http\Controllers\Admin\StoreController@create | web,auth,admin |
| | GET|HEAD | admin/stores/{store} | stores.show | App\Http\Controllers\Admin\StoreController@show | web,auth,admin |
| | DELETE | admin/stores/{store} | stores.destroy | App\Http\Controllers\Admin\StoreController@destroy | web,auth,admin |
| | PUT|PATCH | admin/stores/{store} | stores.update | App\Http\Controllers\Admin\StoreController@update | web,auth,admin |
| | GET|HEAD | admin/stores/{store}/edit | stores.edit | App\Http\Controllers\Admin\StoreController@edit | web,auth,admin |
让您的展示店路线如下所示:
Route::get('/store/{store}', 'StoresController@show')->name('stores.show');
您能否共享
php artisan route:list
的输出(相关部分)和创建路由处理程序?您是否在此url上发出get请求您有路由admin/cities/create
和admin/cities/{city}
,这会给路由控制器造成歧义,因为create
是{city}
的参数。这就是为什么调用show
method它应该是POST而不是|GET | HEAD | admin/cities/{city}| cities.show
@ZaheerAttar这些路由是由Route::resource
生成的。如何修复@Ajay它不应该发布在节目中
。我想保留/stores/
。