希望在模型關聯里增加條件的支持

瀏覽:1365 發布日期:2019/04/04
一張表通過某個條件,判斷是關聯A表還是B表,這個場景很常用

目前使用獲取器也能解決類似關聯,但是略顯冗余

這是yii2的實現:
public function getCreator() {
if ($this->type) return $this->hasOne(\backend\models\Admin::className(), ['id' => 'creator_id']);
else return $this->hasOne(\backend\models\User::className(), ['id' => 'creator_id']);
}

這是tp51的實現:

public function getCreatorAttr($value,$data)
{
if ($data['type']){
return Admin::where('id',$data['user_id'])->field('id,fullname')->find();
}else{
return User::where('id',$data['user_id'])->field('id,fullname')->find();
}
}
評論(
后面還有條評論,點擊查看>>