1. 程式人生 > >YII2中使用with關聯查詢時,附帶關聯查詢條件

YII2中使用with關聯查詢時,附帶關聯查詢條件

前言:YII2中可以使用model中的relation關係進行表關聯

應用場景舉例:
需要查詢所有使用者的資訊,並關聯查詢(with)出使用者的發表過的文章,且文章的評論不為0的資料。

$user= user::find()->with([
    'articles' => function ($query){
        $query->where('comment>0');
    }
])->all();

$query是YII返回的查詢類,同ActiveQuery一樣,可以對其使用model的相關命令
例如:

$query->where
('comment>0')->orderby('update_time DESC')

也可以使用閉包函式進行傳遞外部引數

var $condition = 0;//評論數對比條件
$user= user::find()->with([
    'articles' => function ($query) use($condition) {
        $query->where(['>','comment',$condition]);
    }
])->all();