如何在yii2 ActiveDataProvider中使用join()

如何在yii2 ActiveDataProvider中使用join(),yii,yii2,Yii,Yii2,我有学生和朱鲁桑,学生有一个朱鲁桑,学生朱鲁桑id是朱鲁桑朱鲁桑id。我想得到学生*除了学生朱鲁桑id和朱鲁桑姓名在朱鲁桑没有朱鲁桑id。查询中的关系名是错误的 应该是: public function actionIndex(){ $activeData = new ActiveDataProvider([ 'query' => Student::find()->joinWith('jurusan')->all(), 'paginati

我有学生和朱鲁桑,学生有一个朱鲁桑,学生朱鲁桑id是朱鲁桑朱鲁桑id。
我想得到学生*除了学生朱鲁桑id和朱鲁桑姓名在朱鲁桑没有朱鲁桑id。

查询中的关系名是错误的

应该是:

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']);
}

“查询”中的关系名称错误

应该是:

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']);
}

如果您想获得specifics列,应该使用Yii2提供的查询生成器。


希望这能回答您的问题。

如果您想获得详细信息列,应该使用Yii2提供的查询生成器。


希望这能回答您的问题。

query属性必须是实现QueryInterface的类的实例,例如yii\db\query或其子类。我想我犯了一个错误,它应该是join()??不加入,因为我想要的是完全加入。不是左连接。“query”属性必须是实现QueryInterface的类的实例,例如yii\db\query或其子类。我想我犯了一个错误,它应该是join()??不加入,因为我想要的是完全加入。不是左键连接。