Zend framework doctrine2实体关联有什么问题
Elloo,我有两个条令实体,正在尝试左连接,但是我收到一条消息“Error:Class GR\Entity\AccountEvents没有名为Accounts的关联”。我已经研究了stackoverflow上的其他解决方案,但是没有一个有帮助 这是我的密码Zend framework doctrine2实体关联有什么问题,zend-framework,doctrine-orm,Zend Framework,Doctrine Orm,Elloo,我有两个条令实体,正在尝试左连接,但是我收到一条消息“Error:Class GR\Entity\AccountEvents没有名为Accounts的关联”。我已经研究了stackoverflow上的其他解决方案,但是没有一个有帮助 这是我的密码 <?php namespace GR\Entity; /** * * @Table(name="accounts") * @Entity */ class Accounts { /** * * @
<?php
namespace GR\Entity;
/**
*
* @Table(name="accounts")
* @Entity
*/
class Accounts
{
/**
*
* @var integer $id
* @Column(name="id", type="integer",nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @Column(type="string",length=255,nullable=false)
* @var string
*/
private $name;
/**
* @Column(type="string",length=255,nullable=false)
* @var string
*/
private $email;
/**
* @Column(type="string",length=255,nullable=false)
* @var string
*/
private $password;
/**
* @Column(type="datetime",nullable=false)
* @var datetime
*/
private $created_at;
/**
* @OneToMany(targetEntity="AccountEvents", mappedBy="Accounts")
*/
private $accountevents;
public function __get($property)
{
return $this->$property;
}
public function __set($property,$value)
{
$this->$property = $value;
}
}
提前感谢我已经解决了它,下面是解决方案(我使用的是ZF 1.11、条令2和nolasnowball库) 账户内实体变更
/**
* @OneToMany(targetEntity="AccountEvents", mappedBy="accounts")
* @var \Doctrine\Common\Collections\Collection
*/
private $accountevents;
/**
* @ManyToOne(targetEntity="Accounts")
* @JoinColumn(name="accounts_id", referencedColumnName="id")
* @var GR\Entity\Accounts
**/
private $accounts;
在AccountEvents中实体更改
/**
* @OneToMany(targetEntity="AccountEvents", mappedBy="accounts")
* @var \Doctrine\Common\Collections\Collection
*/
private $accountevents;
/**
* @ManyToOne(targetEntity="Accounts")
* @JoinColumn(name="accounts_id", referencedColumnName="id")
* @var GR\Entity\Accounts
**/
private $accounts;
获取结果集
$query = $this->em->createQueryBuilder()
->select('a, e')
->from('GR\Entity\Accounts', 'a')
->leftJoin('a.accountevents', 'e');
$results = $query->getQuery()->getResult();
这是完整的代码您应该将答案移动到答案中。你甚至可以——也许应该——接受你自己的答案。我认为你在混淆概念。对象上不应该有外键。此外,看起来您有多对多自事件,并且有“$帐户”。但我希望一个事件只有一个帐户。所以是“$account”,而不是“$accounts”。为什么您的实体名称被称为“账户”,而不仅仅是“账户”?为什么不使用普通的DQL而不是查询生成器?太多的事情要解决。。。