이전 응용 프로그램을 Symfony2로 다시 쓰고 있는데 조금 갇혀 있습니다. 응용 프로그램은 TaskType
및 TagsType
입니다. TaskType
양식의 컬렉션은 TagType
입니다. 일부 태그가 보관 처리 될 수 있습니다 (예 : Tag#archived=true
). 이 경우 작업을 편집하려고 할 때 보관 된 태그가 양식에 표시되어서는 안됩니다.Symfony2에서 양식 컬렉션을 필터링하는 방법은 무엇입니까?
class TaskType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add(
'tags',
'collection',
array(
'type' => new TagType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
)
)
;
}
// ...
}
class TagType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
;
}
// ...
}
대신 collection
의 entity
을 가진 경우 query_builder
를 사용하는 것과 비슷 태그를 필터링 할 수있는 방법이 있습니까? 해결 방법이 있습니까?
작업 ID (선택적 매개 변수?)를 전달하여 TagType에 query_builder direclty를 사용하지 않는 이유는 무엇입니까? 나는 correclty btw라는 질문을 이해했는지 확신 할 수 없다. – DonCallisto
'TagType '도 표시 할 수 있습니까? – frumious
@DonCallisto 아주 간단합니다 - 위의 설정으로 모든 태그를 볼 수 있습니다. 컬렉션의 일부 태그 ('SELECT * FROM tags'대신 'SELECT * FROM tags WHERE archived = false')를 제외하고 싶습니다. 아이디어의 예를 게시 할 수 있습니까? – tftd