所以這就是我想要做的。 我的表說(課程)有多個具有相同ID的條目。Cakephp Paginate獨特記錄
當我從paginate獲取數據時,它顯示所有記錄。因此,如果我有3個記錄與Id 5它將顯示記錄編號5三次。
現在我想要的是它應該只顯示一次記錄。
我在網上搜索,但找不到任何東西。
如果有人遇到過這樣的問題並找到了解決辦法,請讓我知道。
感謝,
所以這就是我想要做的。 我的表說(課程)有多個具有相同ID的條目。Cakephp Paginate獨特記錄
當我從paginate獲取數據時,它顯示所有記錄。因此,如果我有3個記錄與Id 5它將顯示記錄編號5三次。
現在我想要的是它應該只顯示一次記錄。
我在網上搜索,但找不到任何東西。
如果有人遇到過這樣的問題並找到了解決辦法,請讓我知道。
感謝,
看着CakePHP的食譜,爲分頁文件顯示,則可以覆蓋$ PAGINATE成員。在幕後,這與傳遞模型的find('all')參數類似。也許嘗試設置參數顯式返回您對distinct關鍵字感興趣的filds以縮小所需的值?
class RecipesController extends AppController {
var $paginate = array(
'fields' => array('Model.field1', 'DISTINCT Model.field2')
);
}
因此,這裏是我的PAGINATE變量看起來像:
var $paginate = array(
'Courses' => array(
'limit' => 20,
'page' => 1,
'order' => array(
'Courses.id' => 'asc')
),
);
條件變量看起來是這樣的:
$cond = array("Courses.id LIKE "=>$this->data['id_search'],
"Courses.length LIKE "=>$this->data['length_search'],
"Courses.marks LIKE "=>$this->data['marks']
);
這是我如何打電話分頁。
$data = $this->paginate('CdmaRfReport',$cond);
我試着做
$paginate = array(
'Courses' => array(
'limit' => 20,
'fields' => array('DISTINCT Courses.id'),
'page' => 1,
'conditions' => $cond,
'group' => array('id'),
'order' => array(
'Courses.id' => 'asc')
)
);
它似乎並沒有幫助。
我也試過
$cond = array("DISTINCT Courses.id "=>$this->data['id_search'],
"Courses.length LIKE "=>$this->data['length_search'],
"Courses.marks LIKE "=>$this->data['marks']
);
即使這樣的錯誤了 我可能是有點問題。但我無法弄清楚。
任何建議,請讓我知道。
我遇到了你的問題,因爲我有類似的問題。 David Z的解決方案對我無效,但我確實發現$ paginate中的group變量對我有用。
因此,使用上面的代碼示例,這是我應該如何工作的。
$paginate = array(
'Courses' => array(
'limit' => 20,
'fields' => array('Courses.id'),
'conditions' => $cond,
'group' => array('Courses.id'),
'order' => array('Courses.id' => 'asc')
)
);
爲了讓我更加了解適用於我的解決方案,我有屬於公司的系統。我希望獲得我所擁有的系統的獨特公司名單。這是我用確切的代碼,爲我工作
$this->paginate = array ('fields' => array ('Company.*'),
'order' => array('Company.name' => 'ASC'),
'group' => array('Company.id'));
$this->set('companies', $this->paginate($this->Company->System));
希望這有助於