2
我正在處理一個相當複雜的查詢生成器(在存儲庫函數中),它使用了很多東西,如partial c.{id,name,created}
和一堆fetchjoins來試圖保留數據量和數據量向下查詢。Doctrine2 Paginator,getArrayResult
然而,這還不夠,但前端表示無論如何都是分頁的,所以我想在需要時進行一些Ajax調用來獲取數據。
$qb = $this->createQueryBuilder('c')
->select('a whole bunch')
->join('many joins')
->setFirstResult(0)
->setMaxResults(10)
上述方法doesn't work for complex joins,我做setMaxResults(10)
並獲得2分的結果,setMaxResults(1000)
讓我118分的結果。學說建議使用他們的Pagination類,因爲它會正確處理計數/迭代。
現在,如果我循環遍歷由new Paginator($query, true)
提供的Iterator對象,但是調用存儲庫函數的代碼期望從getArrayResult
獲取數組,那麼該方法工作良好。
迭代器包含完整的實體對象,這意味着我將不得不重寫所有服務以使用方法而不是數組鍵。
有沒有辦法將Paginator與ArrayResult一起使用?