Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony-如何使用控制器中的参数生成url_Php_Symfony - Fatal编程技术网

Php Symfony-如何使用控制器中的参数生成url

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

我想生成一个类似../profile/firstname.lastname的url

但我不明白我如何做到这一点,因为我希望在我的php中也有来自用户的id

这是我的控制器:

       $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
服务。。。还是怎样