我正试图从另一个捆绑实体中获取选择权。这总是会导致错误,我想了解原因:(
我正在尝试构建一个表单:
...
->add('client_id', 'entity', array(
'class' => 'PrUserBundle:Client',
'property' => 'name',
'required' => true,
'label' => $this->get('translator')->trans('staff.location'),
))
...
这会导致错误:
Error: Call to a member function getId() on a non-object in
/var/www/symfony/webprojekt/src/Pr/AdressBundle/Entity/Adress.php line 165
这是第165行的功能:
public function getClientId()
{
return $this->client->getId();
}
我做错了什么?这让我有点困惑
编辑: 我正在为客户端使用ManyToOne
/**
* @ORM\ManyToOne(targetEntity="Pr\UserBundle\Entity\Client")
* @ORM\JoinColumn(name="client_id", referencedColumnName="id")
* @var Client
*/
private $client;
答案 0 :(得分:1)
您的表单应使用client
字段而不是client_id
。
client_id
是数据库中用于存储外键(来自client
表)的字段,但它实际上不能通过ORM使用。
当您使用实体字段时,它会为您生成关联,而不仅仅是设置id /外键。
您的address
模型应该只有getClient
和setClient
(对于此问题)它并不真正需要知道{实际上发生了什么{1}}模型。
然后获取客户端ID,你就可以了解......
client