这是我的代码
<?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;
}
}
..和
<?php
namespace GR\Entity;
/**
*
* @Table(name="account_events")
* @Entity
*/
class AccountEvents
{
/**
*
* @var integer $id
* @Column(name="id", type="integer",nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var Accounts $accounts
*
* @Column(name="account_id", type="integer", nullable=false)
* @ManyToOne(targetEntity="Accounts", inversedBy="accountevents")
* @JoinColumn(name="accounts_id", referencedColumnName="id")
*/
private $accounts;
/**
* @Column(type="string",length=255,nullable=true)
* @var string
*/
private $event;
/**
* @Column(type="datetime",nullable=false)
* @var datetime
*/
private $created_at;
public function __get($property)
{
return $this->$property;
}
public function __set($property,$value)
{
$this->$property = $value;
}
}
..和我的查询
$query = $this->em->createQueryBuilder()
->select('a, e')
->from('GR\Entity\AccountEvents', 'e')
->leftJoin('e.Accounts', 'a')
->query();
$results = $query->getResult();
提前致谢
答案 0 :(得分:3)
我已经解决了,下面是解决方案(我使用的是ZF 1.11,教义2和nolasnowball库)
在帐户实体更改
中/**
* @OneToMany(targetEntity="AccountEvents", mappedBy="accounts")
* @var \Doctrine\Common\Collections\Collection
*/
private $accountevents;
在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();