2017-08-28 126 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