【发布时间】:2015-11-26 11:46:25
【问题描述】:
Yii 会隐式地将 ID 排序添加到条件中。
注意代码中的这一行 $criteria->order ='t.id ASC';
我的源代码:
$criteria = new CDbCriteria;
$criteria->select = 't.id, order_id, was_before, became, t.created_at';
$criteria->addCondition('t.created_at >= \'' . $from . '\'');
$criteria->addCondition('t.created_at <= \'' . $to . '\'');
$criteria->alias ='t';
$criteria->with = [
'order' => [
'select' => 'm.id as b, m.status',
'condition' => 'm.status = ' . Order::STATUS_CANCELLED,
'alias' => 'm',
'with' => [
'packerRest' => [
'select'=> 'g.id as n',
'alias' => 'g'
]
]
],
];
$criteria->order ='t.id ASC';
标准转储:
产生的错误:
如您所见,我没有添加按 ID 排序。 Yii 以某种方式完成了它并破坏了整个查询。
我已经准备好用纯 MySQL 重写它。
任何想法为什么会这样?
【问题讨论】:
-
也许您与
order或packerRest模特有关系? -
是的,你说得对,这就是我在订单模型中的内容:'packerRest' => [self::HAS_MANY, 'PackerRest', 'order_id', 'order' => 'id DESC '],:.如果您提供答案,我会接受它
-
谢谢!我很高兴能帮上忙!干杯
标签: php yii sql-order-by yii-cactiverecord