gpt4 book ai didi

arrays - 急切加载、ArrayResult 和 Doctrine 2

转载 作者:行者123 更新时间:2023-12-04 06:19:15 25 4
gpt4 key购买 nike

我需要提供一个返回文章的网络服务。

我想在该结果中包含用户关系,以避免我的客户调用另一个方法来加载用户对象。

我使用数组结果是因为我想要一个数组集合(我认为最好使用)所以我希望我可以急切地加载我的用户。

我试过:

* @ManyToOne(targetEntity="\My\Model\User\User", fetch="EAGER")

但它看起来不起作用。`

编辑,一些代码:
public function getPublishedArticles($page, $count, $useArrayResult = false) {
$qb = $this->createQueryBuilder('a');
$qb->where('a.status = :status')
->orderBy('a.published_date', 'DESC')
->addOrderBy('a.creation_date', 'DESC')
->setParameter('status', Article::STATUS_PUBLISHED )
->andWhere('a.published_date <= :date')
->setParameter('date', date('Y-m-d'));
}

$adapter = new PaginationAdapter($qb->getQuery());
$adapter->useArrayResult($useArrayResult);
$paginator = new \Zend_Paginator($adapter);
$paginator->setItemCountPerPage($itemCount)
->setCurrentPageNumber($page);

return $paginator;
}

我用 $useArrayResult 调用这个方法标志设置为 TRUE

最佳答案

当您使用 DQL 查询时,您添加了 JOIN加入相关实体的条款:

$qb->createQueryBuilder('a')
->addSelect('u')
->join('a.user', 'u')
...
fetch="EAGER"fetch="LAZY"当您使用 EntityManager 获取实体时正在使用,即:
$article = $em->find('Entity\Article', 123);

关于arrays - 急切加载、ArrayResult 和 Doctrine 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6819612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com