2014-05-15 1 views
2

많은 HoneymoonComponent가있는 여행 엔티티가 있습니다. TripAdmin, 나는 인라인과 관련된 모든 HoneymoonComponent을 편집 할 sonata_type_collection을 사용하고 있습니다 :sonata_type_collection에 대한 사용자 정의 쿼리 또는 특정 getter 메소드 양식 유형

$formMapper 
     ->add('isHoneymoonEnabled', null) 
     ->add('honeymoonComponents', 'sonata_type_collection', array('by_reference' => false), array(
        'edit' => 'inline', 
        'inline' => 'table', 

    )); 

에만 (예를 들어 기준과 일치하는 honeymoonComponents을 보여주는 것입니다,이 제대로 작동하지만 내가 달성하고자하는 : HoneymoonComponent :: enabled = false).

사용자 지정 쿼리를 지정할 수있는 방법을 찾을 수 없으며 조건에 맞는 항목 만 반환하도록 HoneymoonComponent :: getHoneymoonComponent를 재정의하는 것이 좋은지 잘 모르는 경우가 있습니다. .. 나는 그것을별로 좋아하지 않는다.

sonata_type_collection에서 사용할 "getter"메소드를 지정하는 방법이 있습니까? (또는 사용자 정의 조회를 지정하십시오). 두 가지 해결책 모두 내게 좋을 것이다.

미리 감사드립니다.

+0

: '공공 기능 createQuery ($ 컨텍스트 = '목록') { $ 쿼리 = 부모 :: createQuery ($ 컨텍스트); $ rtAlias ​​= $ query-> getRootAlias ​​(); $ query -> andWhere ("{$ rtAlias} .enabled = true") ; return $ query; }' 하지만 관리자 자체 만 영향을받는 것으로 보입니다. 포함 된 형식이 아닙니다. –

답변

1

이 작업을 시도 할 수 있습니다 :

나는 또한 HoneymoonComponentAdmin에서 재판을
$formMapper 
    ->add('isHoneymoonEnabled', null) 
    ->add('honeymoonComponents', null, array(
      'by_reference' => false, 
      'class' => 'My\Bundle\Entity\MyEntity', 
      'query_builder' => $this->modelManager->createQuery('My\Bundle\Entity\MyEntity', 'h') 
        ->where('h.enabled = 0'), 
     ), array(
      'edit' => 'inline', 
      'inline' => 'table', 
)); 
+0

안녕하세요, 이것 역시 작동하지 않습니다 (원하는 sonata_type_collection 유형, 인라인 편집 테이블) '옵션 "class", "query_builder"가 없습니다. –

+0

' sonata_type_collection' 거기에 'null'이 있습니다 –

+0

예, 죄송 합니다만,이 방법으로는 인라인 요소를 새로 만들 수 없습니다. –

관련 문제