symfony2 createQueryBuilder返回对成员函数的错误调用

时间:2014-08-21 14:04:59

标签: symfony query-builder

我正试图从另一个捆绑实体中获取选择权。这总是会导致错误,我想了解原因:(

我正在尝试构建一个表单:

...
->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;

1 个答案:

答案 0 :(得分:1)

您的表单应使用client字段而不是client_idclient_id是数据库中用于存储外键(来自client表)的字段,但它实际上不能通过ORM使用。

当您使用实体字段时,它会为您生成关联,而不仅仅是设置id /外键。

您的address模型应该只有getClientsetClient(对于此问题)它并不真正需要知道{实际上发生了什么{1}}模型。

然后获取客户端ID,你就可以了解......

client