wob*_*ano 3 php laravel laravel-5
我在组中获取路线时遇到问题.这是我的代码:
Route::group(['prefix' => 'commodities'], function(){
Route::get('commodities', [
'as' => 'showCommodities', 'uses' => 'CommodityController@showAll'
]);
Route::get('{id}', [
'as' => 'showCommodity', 'uses' => 'CommodityController@show'
]);
Route::get('add', [
'as' => 'addCommodity', 'uses' => 'CommodityController@create'
]);
Route::post('update', [
'as' => 'updateCommodity', 'uses' => 'CommodityController@update'
]);
Route::post('destroy', [
'as' => 'destroyCommodity', 'uses' => 'CommodityController@destroy'
]);
Route::post('add', [
'as' => 'storeCommodity', 'uses' => 'CommodityController@store'
]);
});
Run Code Online (Sandbox Code Playgroud)
我在CommodityController这里粘贴了代码http://pastebin.com/bWrdVhsv
一切都有效,除了GET路线commodites/add.我总是得到一个白页.我的调试设置为TRUE,我有正确的刀片.
我在这里错过了什么吗?
问题是您的路线顺序.
移动add捕获所有{id}路线上方的路线.
Route::group(['prefix' => 'commodities'], function(){
Route::get('commodities', [
'as' => 'showCommodities', 'uses' => 'CommodityController@showAll'
]);
Route::get('add', [
'as' => 'addCommodity', 'uses' => 'CommodityController@create'
]);
Route::get('{id}', [
'as' => 'showCommodity', 'uses' => 'CommodityController@show'
]);
Route::post('update', [
'as' => 'updateCommodity', 'uses' => 'CommodityController@update'
]);
Route::post('destroy', [
'as' => 'destroyCommodity', 'uses' => 'CommodityController@destroy'
]);
Route::post('add', [
'as' => 'storeCommodity', 'uses' => 'CommodityController@store'
]);
});
Run Code Online (Sandbox Code Playgroud)
Laravel将从头到尾浏览您的routes.php文件.以下路线基本上是一个全部.
Route::get('{id}', [
'as' => 'showCommodity', 'uses' => 'CommodityController@show'
]);
Run Code Online (Sandbox Code Playgroud)
这意味着它将捕获所有与模式匹配的URL的GET请求:
/commodities/some-kind-of-string.
由于/commodities/adduri与上述模式匹配,它将使用该路由,因为它首先出现在routes文件中.