2017-08-28 70 views
0

我有問題關於yii 1.1排序。
我有三張票,修理日誌和部分表。
以下關係已在Ticket模型中定義。排序yii 1.1

'repairLogs' => array(self::HAS_MANY, 'RepairLog', 'ticket_id', 'order'=>'ts DESC'), 

和repairLogs表

'part' => array(self::BELONGS_TO, 'Part', 'part_id'), 

部分表有一欄「數字」,我想基於「數字」的數據進行排序。任何人都可以指導我如何做到這一點,因爲我是yii 1.1框架的新手。

回答

2

你可以,如果你使用的是數據提供程序中的find()

Ticket::model()->with(array('part', 'repairLogs'))->findAll(
    array(
     // your conditions here 
     'order' => 'part.number DESC', // "part" is the alias defined in your relation array (in the Ticket model file) 
     'limit' => 10, 
    ) 
); 

做到這一點,你可以將它設置爲默認順序:

new CActiveDataProvider('Ticket', array(
    'criteria' => $criteria, // you criteria that should include the "with" part 
    'sort' => array(
     'defaultOrder' => 'part.number DESC', 
    ) 
)); 
+0

我試過,但它顯示如下錯誤: CDbCommand未能執行SQL表達式:SQLSTATE [42S22]:未找到列:1054'訂單子句'中的未知列'part.number' –

+1

您必須在您中寫入「with」部分條件: ' '$基準 - 與(陣列( '部分'))>;''' – benomite