Activerecord 在Yii2中,如何将表连接到自身?
我有一张书桌。页面可以有父级,父级也是页面。我想选择所有父\ u id=NULL及其“子”的页面。但是当我尝试这个的时候Activerecord 在Yii2中,如何将表连接到自身?,activerecord,yii2,self-join,Activerecord,Yii2,Self Join,我有一张书桌。页面可以有父级,父级也是页面。我想选择所有父\ u id=NULL及其“子”的页面。但是当我尝试这个的时候 public function getPages() { return $this->hasMany(Page::className(), ['parent_id' => 'id']); } 我得到一个get a 1066非唯一表/别名:“page”错误。。。我知道如何在Yii1中修复这个问题,但我不知道如何在Yii2中修复它。您需要为表名添加别名 $
public function getPages()
{
return $this->hasMany(Page::className(), ['parent_id' => 'id']);
}
我得到一个get a 1066非唯一表/别名:“page”错误。。。我知道如何在Yii1中修复这个问题,但我不知道如何在Yii2中修复它。您需要为表名添加别名
$this->hasMany(Category::className(), ['parent_id' => 'id'])->from(['cat' => 'category']);
请参阅讨论。我已经为我的成绩模块完成了此操作,在该模块中,我的成绩具有父子关系 按照以下步骤操作:
public function getParent() {
return $this->hasOne(self::classname(), ['id' => 'parent_id'])->
from(self::tableName() . ' AS parent');
}
[
'label' => 'Parent Grade',
'value' => ($model->parent_id != '' || $model->parent_id != 0) ? $model->parent->name : 'Root Grade',
],
parent\u id
字段不为空/零,则它将显示父级名称,否则为“根级”