簡體   English   中英

在Yii2中排序hasMany關系

[英]Sort hasMany relation in Yii2

我有一個簡單的關系1:N從單一模型中獲得一些價格。

public function getPrices()
    {
        return $this->hasMany(Prices::className(), ['device_id' => 'id']);
    }

但我需要價格對象按特定屬性排序,在這種情況下$value

我在Yii 1看過多個例子,但在Yii 2沒有

感謝@vishu我試過這個:

public function getPrices()
{
    return $this->hasMany(Prices::className(), ['device_id' => 'id'])
        ->viaTable(Prices::tableName(), ['device_id' => 'id'], function ($query) {

            $query->orderBy(['device_price' => SORT_DESC]);
        });

}

但現在它返回一個空數組。

我認為您可以直接分配訂單

public function getPrices()
{
    return $this->hasMany(Prices::className(), ['device_id' => 'id'])->
      orderBy(['device_price' => SORT_DESC]);
}

使用像.......

public function getPrices()
{
    return $this->hasMany(Prices::className(), ['device_id' => 'id'])
                ->orderBy(['device_price' => SORT_DESC]);
 }

參考

在特定情況下,直接相關地設置順序可能不可靠。 因此,您可以在AR查詢中設置順序

Device::find()
->where(['id' => $id])
->with('prices' => function(\yii\db\ActiveQuery $query) {
    $query->orderBy('device_price DESC');
})
->one();

暫無
暫無

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

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