簡體   English   中英

Yii2 模型關系

[英]Yii2 model relation

當我需要在模型中使用相關數據時,我設置了一對鍵( id_itemid ),查詢將是這樣的——

... ON (category.id = category_translate.id_item) ...

public function getTranslate()
    {
        return $this->hasMany(CategoryTranslate::className(), 
            ['id_item' => 'id'])->indexBy('language');
    }

但是,如果我需要查詢的ON部分像這樣 - category.left between 1 and 10怎么辦。

我該怎么做?

在 ON 部分中不應有查詢條件。 ON 部分應該將查詢表鏈接到您加入的表。

您實際嘗試做的是過濾數據。 但是過濾與關系無關。 所以,你應該保持你的關系(甚至可能刪除indexBy('language')部分!)並像這樣執行你的查詢:

$categories = Category::find()
    ->andWhere(['between', 'left', 1, 10])
    ->joinWith('translate')
    ->indexBy('language');

暫無
暫無

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

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