我嘗試在我的CompanyRepository學說2 JOIN ON錯誤
$qb = $this->_em->createQueryBuilder();
$qb->select(array('c', 'ld'))
->from('Model\Entity\Company', 'c')
->leftJoin('c.legaldetails', 'ld', \Doctrine\ORM\Query\Expr\Join::ON, 'c.companyid=ld.companyid');
$query = $qb->getQuery();
echo($query->getSQL());
執行此查詢時,我嘗試做我有錯誤:
致命錯誤:未捕獲的異常「學說\ ORM \查詢\ QueryException'消息'[Syntax Error] line 0,col 69:錯誤:字符串預計結束,在/home/raccoon/web/freetopay.dev/www/class/new/library/Doctrine/中獲得'ON' ORM/Query/QueryException.php on line 42
這些是我的模特:
<?php
namespace Model\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Company
*
* @ORM\Table(name="Company")
* @ORM\Entity(repositoryClass="\Model\Repository\CompanyRepository")
*/
class Company
{
/**
* @var integer $companyid
*
* @ORM\Column(name="CompanyID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $companyid;
/**
* @var \Model\Entity\LegalDetails $legaldetails
*
* @ORM\OneToOne(targetEntity="\Model\Entity\Legaldetails", mappedBy="companyid")
*/
private $legaldetails;
//other fields
public function __construct()
{
$this->legaldetails = new ArrayCollection();
}
//setters and getters
和legaldetails實體:
<?php
namespace Model\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Legaldetails
*
* @ORM\Table(name="LegalDetails")
* @ORM\Entity
*/
class Legaldetails
{
/**
* @var integer $legalid
*
* @ORM\Column(name="LegalID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $legalid;
/**
* @var \Model\Entity\Company $company
*
* @ORM\Column(name="CompanyID", type="integer", nullable=false)
* @ORM\OneToOne(targetEntity="\Model\Entity\Company", inversedBy="companyid")
* @ORM\JoinColumn(name="companyid", referencedColumnName="companyid")
*/
private $company;
有什麼不對?
非常感謝!問題解決了!我changet我的實體註釋這樣'/ ** * @var Legaldetails $ legaldetail * * @ORM \ OneToOne(targetEntity = 「Legaldetails」 的mappedBy = 「公司」) */ 私人$ legaldetail;'在公司實體和'/ ** * 公司@var $公司 * * @ORM \ OneToOne(targetEntity = 「公司」) * @ORM \ JoinColumns({ * @ORM \ JoinColumn(name = 「CompanyID」,referencedColumnName =「CompanyID」,unique = true) *}) */ private $ company;'in legaldetails –
+1,still working(Symfony 2.5) – mboullouz