在Symfony2表單中,當試圖獲取實體時,Symfony希望接收QueryBuilder對象,但有時候沒有返回實體。在這種情況下,出現一條錯誤消息:Symfony2表單query_builder - 允許爲null
預期類型的參數「學說\ ORM \ QueryBuilder的」,因爲
如何使query_builder允許選項,沒有可用的實體「NULL」 。
$builder
->add('client', 'entity', array(
'class' => 'Faktura\FakturaBundle\Entity\Client',
'query_builder' => function(\Web\MyBundle\Repository\ClientRepository $er) use ($company){
return $er->getClients($company);
))
;
ClientRepository.php
public function getClients($company)
{
$qb = $this->createQueryBuilder('c')
->select('c')
->where('c.company = :company')
->setParameter('company', $company)
->getQuery();
return $qb->getResult();
}
其實,這只是基本的$er->findBy(array('company' => $company))
方法 但我使用自定義getClients()
方法
這裏貼上'''getClients'''的主體。 –