我正在重寫一箇舊的應用程序到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')
;
}
// ...
}
有沒有辦法來過濾與具有一個entity
代替collection
在使用query_builder
標籤?是否有任何解決方法?
爲什麼不使用query_builder direclty到TagType中,傳遞Task id(可選參數?)。我不確定我是否理解這個問題corretty順便說一句。 – DonCallisto 2014-10-10 07:07:50
你可以顯示'TagType'嗎? – frumious 2014-10-10 07:08:00
@DonCallisto這很簡單 - 使用上面的設置,在窗體中可以看到所有標籤。我想排除集合中的一些標記(即'SELECT * FROM tags WHERE archived = false',而不是'SELECT * FROM tags')。你能發表一個你的想法的例子嗎? – tftd 2014-10-10 10:17:09