【问题标题】:Laravel resource with parameter causing other routes to throw error带有参数的 Laravel 资源导致其他路由抛出错误
【发布时间】:2013-10-30 20:09:51
【问题描述】:

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

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

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

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

如果我取出参数,当然会破坏浏览路线,但随后身份验证路线有效。

有人知道这是什么原因吗?

【问题讨论】:

    标签: api laravel laravel-4 laravel-routing


    【解决方案1】:

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

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

    查看名为:Actions Handled By Resource Controller

    的表格

    你可以看到 Laravel 已经为你处理了带有参数的路由,你可以使用这些参数来实现浏览。

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

    当然,如果那些不符合您的需求,您总是可以实施其他路线。

    【讨论】:

    • 该表确实显示了一个允许您传入参数的方法,显示。奇怪的是,如果我颠倒路线的顺序,它们都可以工作并且我没有收到错误,但之后的任何事情都会失败。不清楚发生了什么。我能够通过注册 GET 路由并将另一种方法添加到控制器 Route::group(array('prefix' => 'service'), function() { Route::resource('authenticate', 'AuthenticationController'); }); Route::resource('browse/{brand}', 'BrowseController');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2016-01-15
    • 1970-01-01
    • 2019-01-11
    • 2015-10-25
    • 2018-10-04
    相关资源
    最近更新 更多