Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/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 Getter与manytone的关系不存在';行不通_Php_Symfony_Doctrine Orm_Query Builder_Doctrine Query - Fatal编程技术网

Php Getter与manytone的关系不存在';行不通

Php Getter与manytone的关系不存在';行不通,php,symfony,doctrine-orm,query-builder,doctrine-query,Php,Symfony,Doctrine Orm,Query Builder,Doctrine Query,我正在从事一个symfony项目,我有一个实体(在这里称为ent)具有多个属性,其中之一是多人关系: /** * @ORM\ManyToOne(targetEntity="RB\ABundle\Entity\Somethingelse", inversedBy="ent") * @ORM\JoinColumn(nullable=false, onDelete="CASCADE") */ private $smthg 现在我的控制器中有一个getter: public function g

我正在从事一个symfony项目,我有一个实体(在这里称为ent)具有多个属性,其中之一是多人关系:

/**
 * @ORM\ManyToOne(targetEntity="RB\ABundle\Entity\Somethingelse", inversedBy="ent")
 * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
 */
private $smthg
现在我的控制器中有一个getter:

public function getAction($smthg)
{
    $em = $this->getDoctrine()->getManager();
    $ents = $em->getRepository('ABundle:Ent')
        ->createQueryBuilder('p')
        ->where('p.smthg = :smthg')
        ->setParameter('smthg', $smthg)
        ->getQuery()
        ->getArrayResult();
    return new JsonResponse($ents);
}
我的getter工作得很好,只是我没有获得多人关系的所有属性

我试过这样的方法:

public function getAction($smthg)
{
    $em = $this->getDoctrine()->getManager();
    $ents = $em->getRepository('ABundle:Ent')
        ->createQueryBuilder('p')
        ->select('p')
        ->join('p.smthg','pr')
        ->where('p.smthg = :smthg')
        ->setParameter('smthg', $smthg)
        ->getQuery()
        ->getArrayResult();
    return new JsonResponse($ents);
}
但它不会显示“smthg”数据库中的内容

在数据库里我有正确的信息。他们在那儿,我就是弄不到

感谢您的帮助

试试这个:

public function getAction($smthg)
{
    $ents = $this->getDoctrine()->getRepository('ABundle:Ent')
        ->createQueryBuilder('p')
        ->select('p', 'pr')
        ->join('p.smthg','pr')
        ->where('p.smthg = :smthg')
        ->setParameter('smthg', $smthg)
        ->getQuery()
        ->getArrayResult();
    return new JsonResponse($ents);
}

什么意思不起作用$ent不存在,il将是$ent不是这样,只是这里重写不好,但我的代码中没有这个错误OK但指定它意味着什么不起作用,返回错误?错误的结果?这是一个延迟加载问题。->选择('p','pr')@Cerad它很好用,谢谢。你先回答了,但有人把答案写了,所以如果你想写,我会确认你的答案。如果不是,我会确认他的