如何在yii2 ActiveDataProvider中使用join()

时间:2016-10-16 13:19:18

标签: yii yii2

public function actionIndex(){
    $activeData = new ActiveDataProvider([
        'query' => Student::find()->joinWith('jurusan')->all(),
        'pagination' => [
            'defaultPageSize' => 12,
        ]
    ]);
    return $activeData;
}

public function getStudentJurusan()
{
    return $this->hasOne(Jurusan::className(), ['jurusan_id' => 'student_jurusan_id']);
}

我有学生和Jurusan,实际上,学生有一个Jurusan和学生jurusa_id是jurusan jurusan_id。我想要学生*除了学生jurusan_id和没有jurusan_id的jurusan中的jurusan_name。

2 个答案:

答案 0 :(得分:0)

'查询'中的关系名称是错的。

应该是:

'query' => Student::find()->joinWith(['studentJurusan']),

答案 1 :(得分:0)

如果要获取细节列,则应使用Yii2提供的查询构建器。 http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html

希望这能回答你的问题。