Zend framework doctrine2实体关联有什么问题

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 { /** * * @

Elloo,我有两个条令实体,正在尝试左连接,但是我收到一条消息“Error:Class GR\Entity\AccountEvents没有名为Accounts的关联”。我已经研究了stackoverflow上的其他解决方案,但是没有一个有帮助

这是我的密码

<?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而不是查询生成器?太多的事情要解决。。。