Php Symfony-如何使用控制器中的参数生成url
我想生成一个类似../profile/firstname.lastname的url 但我不明白我如何做到这一点,因为我希望在我的php中也有来自用户的id 这是我的控制器:Php Symfony-如何使用控制器中的参数生成url,php,symfony,Php,Symfony,我想生成一个类似../profile/firstname.lastname的url 但我不明白我如何做到这一点,因为我希望在我的php中也有来自用户的id 这是我的控制器: $controllers ->match('profile/{firstname.lastname}/', array($this, 'profile')) ->assert('userId', '\d+') ->meth
$controllers
->match('profile/{firstname.lastname}/', array($this, 'profile'))
->assert('userId', '\d+')
->method('GET|POST')
->before(array($this, 'checkLogin'))
->bind('home.profile');
Symfony用于生成路径。但路径可能没有在路由系统中定义。因此,您必须创建它的一个实例并传递一个RouteCollection
,它只包含您想要的路径,而且似乎不是一个好方法
最好使用。你必须像这样构建你的
路线
<route id="profile" path="/profile/{first_name}.{last_name}">
<default key="_controller">...</default>
</route>
...
在控制器中创建如下内容
<route id="profile" path="/profile/{first_name}.{last_name}">
<default key="_controller">...</default>
</route>
$this->generateUrl('profile'[
“first_name”=>“skowron”,
“姓氏”=>“行”
]);
但是,如果你有两个配置文件具有相同的数据,它将给你带来糟糕的结果。然后您可以创建slug或将id
参数添加到您的路线中您可以提供更多的代码来帮助解释您试图解决的问题吗?这个代码在哪里被调用?我没有更多的代码,因为我不知道怎么做。现在我可以像profile/1一样通过url传递id,但我想传递名称。你把代码放在哪里了?你到底想实现什么。请更详细地描述这个问题。您想在控制器操作中生成URL以?在您的代码示例中,$controllers
变量是什么?@router
服务。。。还是怎样