1

我想在 Laravel 4 中为我的所有路由使用命名参数,而不是依赖于路由定义中的位置。我在手册中找不到任何描述如何执行此操作的内容。

我看到这个 github 问题表明 Laravel 4 中存在此功能:https ://github.com/laravel/laravel/pull/832#issuecomment-8217765

我试过用冒号前缀设置路由,例如

Route::get('{:foo}/{:bar}', function($bar, $foo) {})

我还尝试使用似乎是旧语法的东西,(:foo)/(:bar)而不是花括号,但这也不起作用。参数总是按照它们在路由中定义的顺序出现。

例子:

我正在使用的应用程序支持我需要维护的一些路由。但它们的设计并不是以适当的宁静风格设计的。

/autoaccount/user/2/3 指的是id=3的用户的id=2的auto账号

对此的新设计是:

/users/{userid}/autoaccounts/{autoaccountid}

因此,新路由的参数顺序不同。我想将这两条路线都指向同一个功能。

4

1 回答 1

0

如您所说,Laravel 4 支持这一点。

您需要花括号中的变量,但没有冒号:

文档正在路由在这里

相关示例:

Route::get('user/{id}/{name}', function($id, $name)
{
    //
})
->where(array('id' => '[0-9]+', 'name' => '[a-z]+'))

请注意,该where()部分是可选的。

查看上面链接的文档以获取可用选项。Route::method()请注意,您可以在传递给调用的数组中定义控制器方法和其他选项。

最后,另请参阅控制器文档以路由到控制器。

于 2013-07-06T13:17:46.937 回答