簡體   English   中英

Yii 1.15 CdbCriteria 加起來自己的排序 - 魔術

[英]Yii 1.15 CdbCriteria adds up own sorting - magic

碰巧 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 重寫它。

任何想法為什么這樣做?

Yii ,可以通過以下方式在模型的relations()方法中定義相關模型的排序: 'packerRest' => [self::HAS_MANY, 'PackerRest', 'order_id', 'order' => 'id DESC' ]這就是您的Order模型中的內容。

PS:我們已經在問題的評論中找出了這個問題,但我發布了這個答案,所以我們只是采用 SO 格式,以便其他人更容易找到和閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM