Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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_Symfony_Doctrine - Fatal编程技术网

Php 如何获取相关表的对象

Php 如何获取相关表的对象,php,symfony,doctrine,Php,Symfony,Doctrine,我使用DQL的查询是: $query = $this->_em->createQuery( 'SELECT v, a FROM MyBundle:Products v JOIN v.category a WITH a.id = :id WHERE v.main = 1' ) ->setMaxResults(1) ->setParameters(array('id' => $id)); $result = $query->

我使用DQL的查询是:

$query = $this->_em->createQuery(

    'SELECT v, a
    FROM MyBundle:Products v
    JOIN v.category a WITH a.id = :id
    WHERE v.main = 1'
)
->setMaxResults(1)
->setParameters(array('id' => $id));



$result = $query->getOneOrNullResult();

var_dump($result->getCategory()->getId());
请sombody解释一下,为什么var_dump什么都不返回(白色页面)?我花了很多时间来解决这个问题,但我不明白,这种行为的原因是什么

我知道,我只能选择类别表的id,我需要类别的孔对象。上面的查询只是一个示例,两个ID都没有返回


或者有其他方法获取相关表的对象吗?

首先,实体的名称是否真的是
产品
,而不是
产品

其次,检查
类别
的反向映射设置是否正确

我刚刚用完全相同的用例尝试了一个简单的例子,效果很好

$em = $this->get('doctrine')->getEntityManager();
$query = $em->createQuery(
        'SELECT p, c
        FROM TestTestBundle:P p
        JOIN p.children c WITH c.id = :id
        WHERE p.main = 1'
    )
    ->setMaxResults(1)
    ->setParameters(array('id' => $id));

if (null !== $result = $query->getOneOrNullResult()) {
    foreach ($result->getChildren() as $child) {
        var_dump($child->getTitle());
    }
}
按照NHG所说的去做,启用错误报告,这样我们就可以得到错误的提示

下面是所使用的两个实体的ORM映射

父母

class P
{
    /**
     * @ORM\OneToMany(targetEntity="Test\TestBundle\Entity\C", mappedBy="parent")
     */
    private $children;

    public function getChildren()
    {
        return $this->children;
    }
孩子

class C
{
    /**
     * @ORM\ManyToOne(targetEntity="Test\TestBundle\Entity\P", inversedBy="children")
     */
    private $parent;

谢谢你的回复。我发现了问题,这让我很沮丧。但只有在这种情况下,当我抛掷大物体时,我的实体与关系也是如此。Skipt停了下来,或者什么的,再也不继续了。因此,当我删除这些转储时,它可以正常工作


也许,Enterx的评论中可能有一个用于转储大型对象的可行解决方案,但我无法尝试,因为我的应用程序位于远程服务器上,我无法访问php.ini。

显示您的错误日志。启用的错误报告应解决白页问题;)日志中没有任何内容,错误报告设置为E_ALL。我不知道,原因是否是物体太大。无论如何,这很奇怪:/No var\u dump输出?也许是一个例外导致你在别处执行死刑?是否尝试将ini值error_reporting设置为true并关闭输出缓冲?