YII2連線左表子屬性不顯示

awake720發表於2021-01-18

多表進行關聯時,關聯時做好了,就是不顯示子表的欄位,

//控制器 
$devlist = Dtest::find()
                ->alias('d')
                ->joinwith('school')
                ->select('d.title, t.testname')
                ->asArray()//加上這個就可以顯示子欄位了
                ->all();
//Dtest 模型中

    public function getschool(){
        //第一個引數還是關聯的模型,第二個依舊還是陣列,陣列第一個就是關聯的 模型的外來鍵,第二個就是自身的外來鍵
      return $this->hasMany(Schooltest::class,['schoolid'=>'testid'])->asArray();

   }

本以為這樣就可以了,結果報錯

Undefined index: testid

後來改成

//控制器 
$devlist = Dtest::find()
                ->alias('d')
                ->joinwith('school')
                ->select('d.title, d.testid, t.testname')//需要顯示主表或副表關聯id
                ->asArray()//加上這個就可以顯示子欄位了
                ->all();
//Dtest 模型中

這樣就可以顯示又不會出錯了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章