Php Laravel 4 routes中命名参数的语法是什么?

Php Laravel 4 routes中命名参数的语法是什么?,php,laravel,laravel-4,Php,Laravel,Laravel 4,我希望对Laravel 4中的所有路线使用命名参数,而不是依赖于路线定义中的位置。我在手册中找不到任何描述如何做到这一点的内容 我看到了github的问题,表明Laravel 4中存在此功能: 我尝试过用冒号前缀设置路由,例如 Route::get('{:foo}/{:bar}', function($bar, $foo) {}) 我还尝试使用看起来像是旧语法的(:foo)/(:bar),而不是大括号,但这也不起作用。参数总是按照它们在路由中定义的顺序来传递 例如: 我正在使用的应用程序支持我

我希望对Laravel 4中的所有路线使用命名参数,而不是依赖于路线定义中的位置。我在手册中找不到任何描述如何做到这一点的内容

我看到了github的问题,表明Laravel 4中存在此功能:

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

Route::get('{:foo}/{:bar}', function($bar, $foo) {})
我还尝试使用看起来像是旧语法的
(:foo)/(:bar)
,而不是大括号,但这也不起作用。参数总是按照它们在路由中定义的顺序来传递

例如:

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

/autoaccount/user/2/3是指id=3的用户的id=2的自动帐户

这方面的新设计是:

/用户/{userid}/autoaccounts/{autoaccountid}


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

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

您需要像前面一样将变量放在花括号中,但不带冒号

文件正在传送

相关示例:

Route::get('user/{id}/{name}', function($id, $name)
{
    //
})
->where(array('id' => '[0-9]+', 'name' => '[a-z]+'))
请注意,
where()
部分是可选的

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


最后,请参见控制器路由的示例。

您能给出一个路由示例以及您正在尝试执行的操作吗?我有几个需要维护的传统路由,它们不是使用一致的RESTful样式设计的。我希望能够为旧URL创建路由,并将它们指向与一些新路由相同的功能。我现在在问题中提供了一个示例。对于旧路由,我建议通过
.htaccess
将它们重写到新路由(在重写过程中使用
$1
$2
等)。虽然
用户
可能是您的控制器,
{userid}
不是有效的操作-您必须知道要执行的
操作
。。然后你可以有任何数量的参数之后!