dia*_*ich 3 orm doctrine zend-framework associations doctrine-orm
我想知道如何对从Doctrine 2中的实体关联映射获得的结果进行分页?例如
class Customer {
/**
* @OneToMany(targetEntity="Order")
*/
private $orders;
}
Run Code Online (Sandbox Code Playgroud)
可以这样使用:
$customer->getOrders();
Run Code Online (Sandbox Code Playgroud)
这将返回一组Order对象.
问题是当有大量订单对象时.
我们可以Doctrine\ORM\Tools\Pagination\Paginator在构建自定义查询时使用,但是在使用关联映射时,我没有看到任何方法可以挂钩查询生成.
class Paginator {
/**
* @param Query|QueryBuilder $query A Doctrine ORM query or query builder.
*/
function __construct(
//....
Run Code Online (Sandbox Code Playgroud)
如果您使用EXTRA_LAZY提取模式,Doctrine将在保湿集合时不检索所有对象.它只会检索在集合上使用slice()方法时所需的子集.
class Customer {
/**
* @OneToMany(targetEntity="Order", fetch="EXTRA_LAZY")
*/
private $orders;
}
$cust = new Customer;
$orders = $cust->getOrders()->slice(100, 50);
Run Code Online (Sandbox Code Playgroud)
您需要验证它与分页的交互方式.