Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 引发[语义错误]的条令查询生成器_Php_Zend Framework_Doctrine Orm - Fatal编程技术网

Php 引发[语义错误]的条令查询生成器

Php 引发[语义错误]的条令查询生成器,php,zend-framework,doctrine-orm,Php,Zend Framework,Doctrine Orm,我遇到条令查询生成器向我抛出[Semantical Error]的问题。我尝试生成的查询如下:- $query = $this->_em->createQueryBuilder() ->select('r, m') ->from('Ajfit\Entity\TicketReply', 'r') ->join('r.mailFk', 'm') ->where('r.ticketFk = :ticket

我遇到条令查询生成器向我抛出[Semantical Error]的问题。我尝试生成的查询如下:-

   $query = $this->_em->createQueryBuilder()
       ->select('r, m')
       ->from('Ajfit\Entity\TicketReply', 'r')
       ->join('r.mailFk', 'm')
       ->where('r.ticketFk = :ticket')
       ->orderBy('m.dt', 'desc')
       ->setParameter('ticket', $ticket)
       ->getQuery();

    $paginator =  new Paginator($query);
    return $paginator->getIterator(); //////////blows up here!
引发的错误是:-

  [Semantical Error] line 0, col 64 near 'm WHERE r.ticketFk': Error: Class Ajfit\Entity\TicketReply has no association named mailFk 
错误所指的实体是:-

名称空间Ajfit\Entity

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Persistence\PersistentObject;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Ajfit\Entity\TicketReply
 *
 * @ORM\Table(name="ticket_reply")
 * @ORM\Entity(repositoryClass="Ajfit\Repository\TicketReply")
 * @ORM\HasLifecycleCallbacks
 */
 class TicketReply extends \Doctrine\Common\Persistence\PersistentObject
 {
    /**
     * @ORM\Id
     * @ORM\Column(name="mail_fk", type="integer")
     * @ORM\ManyToOne(targetEntity="Ajfit\Entity\Mail", inversedBy="replies")
     * @ORM\JoinColumn(name="mail_fk", referencedColumnName="pk")
     */
    protected $mailFk;

    /**
     * @ORM\Id
     *  @ORM\Column(name="ticket_fk", type="integer")
     * @ORM\ManyToOne(targetEntity="Ajfit\Entity\Ticket", inversedBy="replies")
     * @ORM\JoinColumn(name="ticket_fk", referencedColumnName="pk")
     */
    protected $ticketFk;

   /**
    * @var integer $rating
    *
    * @ORM\Column(name="rating", type="integer")
    */
    protected $rating;

 }
由于错误详细说明TicketReply实体并没有mailFk关联,但它确实有关联,所以我编写querybuilder的原因有问题吗


感谢Andrew

您的
$mailFk
既有
又有
多通
注释。列批注不能用于存储关系。 条令似乎选择了在
多通
上使用
注释

删除
@ORM\Column
注释:

/**
 * @ORM\Id
 * @ORM\ManyToOne(targetEntity="Ajfit\Entity\Mail", inversedBy="replies")
 * @ORM\JoinColumn(name="mail_fk", referencedColumnName="pk")
 */
protected $mailFk;

$ticketFk
执行相同的操作您的
$mailFk
既有
又有
多通
注释。列批注不能用于存储关系。 条令似乎选择了在
多通
上使用
注释

删除
@ORM\Column
注释:

/**
 * @ORM\Id
 * @ORM\ManyToOne(targetEntity="Ajfit\Entity\Mail", inversedBy="replies")
 * @ORM\JoinColumn(name="mail_fk", referencedColumnName="pk")
 */
protected $mailFk;
$ticketFk执行相同操作