2
我運行此代碼以獲得我的選擇控件並且工作正常。如何更改symfony2窗體中的選項名稱select元素
$builder
->add('access', 'entity', array(
'label' => 'Behörigheter',
'multiple' => true, // Multiple selection allowed
'expanded' => true, // Render as checkboxes
'property' => 'name',
'class' => 'BizTV\ContainerManagementBundle\Entity\Container',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) use ($company) {
$qb = $er->createQueryBuilder('a');
$qb->innerJoin('a.containerType', 'ct');
$qb->where('a.containerType IN (:containers)', 'a.company = :company');
$qb->setParameters(array('containers' => array(1,2,3,4), 'company' => $company));
$qb->orderBy('ct.id', 'ASC');
return $qb;
}
));
現在我希望能夠定製自己標註的複選框,我學會了就在幾天前,通過在實體改變屬性select_label和界定功能,您可以做到這一點,但此查詢它不起作用。
這是因爲我加入嗎?有沒有辦法完成它?
這是行不通
$builder
->add('access', 'entity', array(
'label' => 'Behörigheter',
'multiple' => true, // Multiple selection allowed
'expanded' => true, // Render as checkboxes
'property' => 'select_label',
'class' => 'BizTV\ContainerManagementBundle\Entity\Container',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) use ($company) {
$qb = $er->createQueryBuilder('a');
$qb->innerJoin('a.containerType', 'ct');
$qb->where('a.containerType IN (:containers)', 'a.company = :company');
$qb->setParameters(array('containers' => array(1,2,3,4), 'company' => $company));
$qb->orderBy('ct.id', 'ASC');
return $qb;
}
));
在實體代碼我有:
public function getSelectLabel()
{
return $this->name . ' (' . $this->parent->getName() . ')';
}
它工作正常的,有一個選擇(單選)控制的另一種形式,但不是這個...
我得到的錯誤是
致命錯誤:致電成員函數getName()在/var/www/biztv_symfony/src/BizTV/ContainerManagementBundle/Entity/Container.php上的非對象在線190
實體中的屬性名稱是否爲真select_label?請記住,您必須指定屬性屬性的PHP屬性名稱,而不是數據庫名稱 – Timo 2012-08-15 08:13:12
放置實體的代碼。你在這個實體中有名爲'getSelectLabel()'的方法嗎? – Munir 2012-08-15 14:38:29
上面更新了問題 – 2012-08-16 22:09:10