我将Laravel 5.1升级到5.3并且路由有问题。
在Laravel 5.1中我的路线如下:
Route::controllers([
'pages/{page_type}' => 'Admin\AdminPagesController',
]);
在控制器中我有类似的方法:
getIndex($type)
postIndex($type, Request $request)
getAdd($type)
postAdd(Request $request)
getEdit($type, $id)
postEdit(Request $request, $id) and others...
但是在我创建路线时的5.3:
Route::resource('pages/{page_type}', 'Admin\AdminPagesController');
我收到了错误
NotFoundHttpException in RouteCollection.php line 161:
或
Route pattern "/master/pages/{page_type}/{{page_type}}" cannot reference variable name "page_type" more than once.
它会在RESTful中生成我的路径
任何人都可以帮助我吗?
感谢。
答案 0 :(得分:0)
由于除了::controller
之外没有其他选择,如果您不想使用休息,则需要为每个操作创建单独的路线:
Route::get('pages/{page_type}', 'Admin\AdminPagesController@getIndex');
Route::post('pages/{page_type}', 'Admin\AdminPagesController@postIndex');
....
答案 1 :(得分:0)
似乎在Laravel 5.2中删除了Route::controllers
方法,从那时起我无法在文档中找到它,并且在Laravel 5.3中的Illuminate\Routing\Router.php
文件中不存在
您必须为您的案例单独创建每条路线。或者你可以简单地使用Route::resource
方法,你对它有什么看法?您可以在Route::resource
调用之前为资源添加额外的方法。