带有参数的Laravel资源导致其他路由抛出错误

时间:2013-10-22 05:32:00

标签: api laravel laravel-4 laravel-routing

我遇到了这个问题,如果我在第一个路由中定义了一个参数,那么第二个会抛出这个错误:

“路线模式”/ browse / {brand} / {{brand}}“不能多次引用变量名称”品牌“。”

Route::resource('browse/{brand}', 'BrowseController');

Route::group(array('prefix' => 'service'), function() { 
    Route::resource('authenticate', 'AuthenticationController');
});

如果我取出参数,当然会打破浏览路线,但是认证路线会起作用。

有谁知道这个的原因?

1 个答案:

答案 0 :(得分:4)

原因是因为Route::resource在您指定的控制器的后台为您创建了几个(RESTful)路由处理程序:

http://laravel.com/docs/controllers#resource-controllers

查看名为的表:资源控制器处理的操作

您可以看到Laravel已经为您处理了可以用来实现浏览的参数。

我认为Route::resource的预期用法不会像您尝试的那样进行参数化。

当然,如果不符合您的需求,您可以随时实施其他路线。