2014-09-01 40 views
2

有没有办法使用Symfony2路由器来构建包含片段标识符的URI?Symfony2 - 路由到片段标识符

我们有一个页面列出了许多不同的实体(称之为“列表”页面) - 当用户点击实体的一个细节内的链接时,它们被带到该实体的“编辑”页面。当他们点击“保存”时,我们希望他们回到“列表”页面,但他们刚刚编辑的实体可见。我们已经将每个实体放入一个具有唯一标识符的div中,因此我们需要的是处理实体更新的控制器将用户带到类似的位置;

www.example.com/entities/list#12345

,其中12345是他们刚刚编辑的实体的id,也是“列表中包含同一实体的细节的div ID “页面。

当然,我们可以从路由器获取“列表”页面的URL,然后在结尾处粘贴一个散列和实体标识,但这看起来不太优雅。

回答

0

只需将散列附加到URL的末尾即可。请记住,URL哈希是纯粹的客户端功能。没有服务器端函数来处理或生成它们,因为服务器从不需要处理它们。

这件事情,你通常只是投入的观点:

<a href="{{ path('my_list') }}#{{ my_entity.id }}">Link</a> 
+0

谢谢见https://symfony.com/blog/new-in-symfony-3-2-routing-improvements。它似乎有点不雅,特别是在控制器内完成时。然而,就像你说的那样,路由器不知道在路由到的页面上是否有一个带有所需ID的div。 – 2014-09-01 15:11:23

5

在Symfony的3.2,你可以这样做:

// generating a URL with a fragment (/settings#password) 
$this->get('router')->generate('user_settings', ['_fragment' => 'password']); 

更多