Laravel 5.3 Route ::没有REST的资源

时间:2016-12-13 09:37:25

标签: laravel laravel-5.3

我将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中生成我的路径

任何人都可以帮助我吗?

感谢。

2 个答案:

答案 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调用之前为资源添加额外的方法。