2014-02-13 1 views
0

routes (경로 파일)에 정의 된 경로를 특정 컨트롤러로 가져올 수 있는지 알아 내려고합니다.컨트롤러를 symfony2로 가져 오기

예가 도움이 될 수 있습니다. routes.yml에서

class SomeRandomController extends Controller { 
    public function showAction($id) { 
     //Get the entity and return with a Response object 
    } 
} 

...

some_random_show: 
    pattern: /some/random/thing/{id}/show 
    defaults: { _controller: "MyBundle:SomeRandom:show", id: 0 } 

그래서 내가 좋아하는 것 내가 클래스 이름과 (MyBundle\Controller\SomeRandomController에서와 같이) 네임 스페이스가있는 경우 (some_random_show 같이) 경로 이름을 얻을 수있다 . 어떤 아이디어?

EDIT 컨트롤러에 대해 특별히 show 액션을 원한다고 가정 해 봅시다.

이것에 대한 근거는 약간의 해킹이지만 특정 엔티티의 클래스 이름과 ID를 DB에 저장하면 내게 어떤 엔티티 클래스를 기반으로 표시 URL을 생성해야합니다 나는 지속되었다. 그게 말이된다면.

+0

또한 작업 이름이 필요합니까? 경로가 기본값처럼 보이기 때문에 : {_controller : "Controller : action", id : 0} – klipach

+0

당신은 왜 그걸 원하겠습니까? – Mantas

답변

0

액션이 여러 경로를 가질 수 있기 때문에 주로 작동하지 않을 것이라고 생각합니다.

그러나 특정 엔티티 클래스를 특정 경로 이름에 매핑하는 것이 전부라면 엔터티 이름을 기반으로하는 경로 이름을 반환하는 서비스를 작성하는 것이 좋습니다.

경로 이름은 일반적 일 수 있습니다 (예 : 엔티티 이름을 소문자로 변환하고 \를 _로 바꿀 수 있음). 또는 config.yml에서 어떤 엔티티가 어떤 경로에 수동으로 매핑되는지 정의 할 수 있습니다.

관련 문제