2015-04-24 37 views
0

我想使用的分頁程序助手蛋糕PHP使用條件和順序按在分頁

的蛋糕PHP PAGINATE功能條件和ORDER BY這是我的代碼,我使用

$this->set('equipment', $this->Paginator->paginate('Equipment',array('conditions' => array('Equipment.equipment_type_id' => 19), 'order' => array('Equipment.problem_count', 'Equipment.barcode DESC')))); 

但它給我這個錯誤

錯誤:未找到列:SQLSTATE [42S22] 1054未知列 '條件' 在 'where子句'

SQL查詢:SELECT EquipmentidEquipmentequipment_type_idEquipmentbarcode,Equipmentproblem_countEquipmentdescriptionEquipmentcreatedEquipmentmodifiedEquipmentTypeidEquipmentTypenameEquipmentTypecreatedEquipmentTypemodified FROM unlibikeequipment AS Equipment LEFT JOIN unlibikeequipment_types AS EquipmentType ON(Equipmentequipment_type_id = EquipmentTypeid)WHERE條件=(19)和order IN( 'Equipment.problem_count', 'Equipment.barcode DESC')LIMIT 20

通過查看SQL查詢生成它看起來像Cake PHP將「條件」和「訂單」解釋爲一列。

任何人都可以幫我嗎?

回答

1

PARAMS在分頁程序的順序::分頁

* @param Model|string $object Model to paginate (e.g: model instance, or 'Model', or 'Model.InnerModel') 
* @param string|array $scope Additional find conditions to use while paginating 
* @param array $whitelist List of allowed fields for ordering. This allows you to prevent ordering 
* on non-indexed, or undesirable columns. See PaginatorComponent::validateSort() for additional details 
* on how the whitelisting and sort field validation works. 

http://api.cakephp.org/2.6/class-PaginatorComponent.html#_paginate

例子:

$this->Paginator->settings = array(
     'order'=>array('yourfields'); 
); 

$this->Pagniator->paginate('Equipment', $conditionsArray) ; 
+0

第一種模式,第二個條件,第3排序和選擇 – MouradK

+0

我改變了我的代碼,這個$ this-> set('equipment',$ this-> Paginator-> paginate('Equipment',array( \t \t \t \t \t \t \t 'Equipment.equipment_type_id'=> 19 \t \t \t \t \t \t) \t \t陣列( \t \t \t \t \t \t \t 'Equipment.problem_count', \t \t \t \t「設備。條形碼DESC」 \t \t \t \t \t \t \t) \t \t)); 它給出了表中的輸入列表,但沒有按照我提到的字段排序它們 – Xylon

+0

你能告訴我如何使用第三個參數嗎? – Xylon