Sf2.0, 예를 들어 표준 블로그. routing.yml의symfony 2 모델 별 라우팅
코드 :
path('DevBlogBundle_post_show',{'id':post.id})
나는 게시물 목록을 포함하는 모든 내 temlates/레이아웃,이 constrution를 사용 : 내가 사용하여 내 게시물에 대한 URL을 생성
DevBlogBundle_post_show:
pattern: /posts/{id}
defaults: { _controller: "DevBlogBundle:Post:show" }
requirements:
_method: GET
id: \d+
표준 방법 . 만약 내가 post_show에 대한 내 경로를 바꾸고 싶다면 (say ... 슬러그 매개 변수를 추가 /posts/{id}.{slug}), 나는 나의 모든 temlates를 바꿀 필요가있다.
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
나뭇 가지를 만드는 방법을 알고 있습니다. 아마도 당신 말이 맞을 것입니다. I RoR "to_param"과 같은 somth를 만들려고하는데 표준 "경로"와 "url"대신에 하나의 twig ext를 생성 할 것입니다 – ZloyPotroh
이 경우에는 Sluggable 번들을보고 싶을 것입니다. 당신은 찾고 있습니다 : https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/sluggable.md – Sgoettschkes