我想生成像../ profile / firstname.lastname
这样的网址但是我不明白我怎么能这样做因为我想在我的php中也是用户的id。
这是我的控制者:
$controllers
->match('profile/{firstname.lastname}/', array($this, 'profile'))
->assert('userId', '\d+')
->method('GET|POST')
->before(array($this, 'checkLogin'))
->bind('home.profile');
答案 0 :(得分:1)
您必须像这样构建Route
<route id="profile" path="/profile/{first_name}.{last_name}">
<default key="_controller">...</default>
</route>
在控制器中创建这样的
$ this-&gt; generateUrl(&#39;个人资料&#39;,[ &#39;如first_name&#39; =&GT; &#39; skowron&#39 ;, &#39;姓氏&#39; =&GT; &#39;线&#39; ]);
但如果你有2个配置文件使用相同的数据,它会给你带来不好的结果。然后,您可以创建slug或将id
参数添加到路径
答案 1 :(得分:0)
Symfony使用Symfony\Component\Routing\Generator\UrlGenerator::generate()生成路径。但可能路径系统中未定义路径。所以你必须创建一个实例并传递一个只包含你想要的路径的RouteCollection
,这似乎不是一个好方法。
最好使用preg_replace。