2017-07-07 85 views
-1

所以,我有實體,名爲Task.php,從中我從數據庫中獲取所有聊天消息並呈現在當前頁面上。在這裏我怎麼讓他們在實體:加載更多的功能symfony 2.8

/** 
* @return \Doctrine\Common\Collections\Collection|static 
*/ 
public function getDisplayedActivity() 
{ 
    $limit = 15; 
    $criteria = Criteria::create(); 
    $criteria->orderBy(['createdAt' => 'DESC']); 
    $criteria->setMaxResults($limit); 
    $criteria->where(Criteria::expr()->isNull('parent')); 
    return $this->activity->matching($criteria); 
} 

後,我使它們在樹枝文件,像這樣:

{% for a in displayedActivity %} 
... 
{% endfor %} 

現在有限制 - 只有15消息顯示在頁面上。 而且我需要按鈕「加載更多」,每次我按下消息塊後會加載另外15次按摩。但我不知道如何做到這一點。

任何幫助將不勝感激。

回答

0

你可以用setFirstResult結合setMaxResults例如:

$start = 0; 
$limit = 15; 
$criteria = Criteria::create(); 
$criteria->orderBy(['createdAt' => 'DESC']); 
$criteria->setFirstResult($start); 
$criteria->setMaxResults($limit); 
$criteria->where(Criteria::expr()->isNull('parent')); 
return $this->activity->matching($criteria); 

這樣,如果你想利用創紀錄的30到你需要改變start 45你可以從記錄0至15

變量爲30.

所以,如果你需要分頁,你可以通過pageNumber例如頁面= 1

$page = 1; 
$limit = 15; 
$start = ($page * limit) - $limit; 
$criteria = Criteria::create(); 
$criteria->orderBy(['createdAt' => 'DESC']); 
$criteria->setFirstResult($start); 
$criteria->setMaxResults($limit); 
return $this->activity->matching($criteria); 
+0

那麼......我怎樣才能從我的樹枝模板通過點擊一個按鈕來調用此方法? – Kir

+0

當我這樣做時 - 完全沒有發生。似乎setFirstResult()方法被忽略。 – Kir