2014-09-01 2 views
2

프래그먼트 식별자를 포함하는 URI를 빌드 할 때 Symfony2 라우터를 사용할 수 있습니까?Symfony2 - 프래그먼트 식별자로 라우팅

많은 엔티티가 나열된 페이지가 있습니다 ("목록"페이지라고 함) - 사용자가 엔티티의 세부 정보 중 하나의 링크를 클릭하면 해당 엔티티의 "편집"페이지로 이동합니다. 그들이 "저장"을 클릭하면, 우리는 그들이 "목록"페이지로 돌아가지만 편집중인 엔티티가 보이도록하고 싶습니다. id로 고유 한 식별자를 가진 div에 각 엔티티를 넣었으므로 엔티티의 업데이트를 처리하는 컨트롤러가 사용자를 필요로하는 것과 같습니다.

www.example.com/entities/list#12345 12345 그들은 단지 편집 한 엔티티의 ID이며, "목록에도 같은 개체의 세부 사항을 포함 사업부의 ID입니다

"페이지.

물론 우리는 라우터에서 "목록"페이지의 URL을 가져온 다음 끝에 해시와 엔터티 ID를 붙일 수 있지만 매우 우아하지는 않습니다.

답변

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가 있는지 전혀 알 수 없습니다. –

5

심포니 3.2에서이 작업을 수행 할 수 있습니다 :

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