Sf2.0,例如标准博客。symfony 2按型号路由
代码的routing.yml的:
DevBlogBundle_post_show:
pattern: /posts/{id}
defaults: { _controller: "DevBlogBundle:Post:show" }
requirements:
_method: GET
id: \d+
标准办法,我通过使用生成我的帖子的网址:
path('DevBlogBundle_post_show',{'id':post.id})
我用这个CONSTRUTION在我所有的temlates /布局,其中包括职位列表。如果我想改变我的路线post_show(说...添加Slug参数/posts/{id}.{slug}),我将需要改变我所有的temlates。相反,我想我的Post模型,像生成路线:
public function getUrl(){
return $this->generator->generate('DevBlogBundle_post_show',array (...params...));}
问:我怎样才能得到这台发电机到我的模型后,我有什么“用......”,以及如何生成路线?
在我的模板,我想放置:
<a href="{{ post.getUrl() }}" ...>...</a>
在此先感谢。
首先,把getUrl放到你的模型中是一个坏主意,主要是因为模型应该是相当愚蠢的,不知道如何生成url。一种方法是创建自己的树枝扩展,它可以在特定类型的任何对象上调用(例如,发布并返回url),您可以像''{{post | url}}那样做''读取关于在这里延伸枝:http://www.kiwwito.com/article/extending-twig-in-symfony-2-add-custom-functions – Sgoettschkes 2012-02-25 18:53:42
我知道如何创建树枝分机。也许,你是对的。 I只是尝试创建像RoR“to_param”这样的句子,我将创建一个树枝分支,我将使用标准的“路径”和“url” – ZloyPotroh 2012-02-25 19:09:18
在这种情况下,您可能需要查看Sluggable包。你正在寻找:https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/sluggable.md – Sgoettschkes 2012-02-25 20:32:59