2014-01-29 2 views
2

내 컨트롤러에서 symfony @ParamConverter를 사용하여 해당 컨트롤러에서 엔티티를 가져 오는 대신 "findBySlug()"메서드 대신 "findWithSomeFeaturesBySlug ($) 슬러그) "그리고 findWithSomeFeaturesBySlug ($ slug) 메서드에서 슬러그 값 대신 '슬러그'키가있는 연관 배열로 $ 슬러그 매개 변수를 받기 때문에 문제가 있습니다.Symfony @ParamConverter에 매개 변수 전달

내 컨트롤러의 코드는 다음과 같습니다

/** 
* @Route("/some-route/{slug}") 
* @ParamConverter("object", class="AcmeBundle:Object", options={"repository_method" = "findWithSomeFeaturesBySlug"}) 
*/ 
public function acmeDemoAction(Object $object) 
{ 
    // Controller code here 
} 

나는 누군가가 나를 도울 수 있기를 바랍니다.

감사합니다.

UPDATE :

미안 해요

, 나는 내가 제대로 내 문제를 설명하지 않았다고 생각합니다. 문제는 "findWithSomeFeaturesBySlug ($ slug)"함수에서 연관 배열을 얻고 $ 슬러그 값을 직접 얻어야한다는 것입니다.

// ObjectRepository 
public function findWithSomeFeatures($slug) 
{ 
    // here I get an associative array in the slug parameter: 
    // $slug = array('slug' => 'some_value') 
    // And I need $slug = 'some_value' 
} 

답변

8

을하는 새로운 방법을 만들어 내가 두려워 해요 ParamConverter

/** 
* @Route("/some-route/{slug}") 
* @ParamConverter("object", class="AcmeBundle:Object", options={"id" = "slug", "repository_method" = "findWithSomeFeaturesBySlug"}) 
*/ 
public function acmeDemoAction(Object $object) 
{ 
    // Controller code here 
} 
+0

+1 정말 문제를 해결합니다. – VisioN

0

프록시 저장소에 전화

findSlugXXXX($slug) { 
    $this->findWithSomeFeaturesBySlug(array('slug' => $slug)); 
} 
+0

의 id 옵션을 추가하여 고정 동일한 문제가 있었다 내가 내 문제를 올바르게 설명하지 못했고, 방금 내 질문을 업데이트했습니다. 어쨌든 당신의 대답을위한 Thansk. – beni0888

+1

동일한 아이디어를 적용하여 인수를 한 유형에서 다른 유형으로 변경하는 메소드를 작성하십시오. – Maks3w