我有一个页表。页面可以有父页面,也可以是页面。我想选择parent_id = NULL的所有页面及其“子代”。但是当我尝试这个
public function getPages()
{
return $this->hasMany(Page::className(), ['parent_id' => 'id']);
}
我得到一个1066不唯一的表/别名:'页面'错误...我知道如何在Yii1中解决此问题,但我不知道要在Yii2中解决此问题。
最佳答案
我已经完成了我的成绩模块,在该模块中我与成绩有亲子关系。
请按照以下步骤操作:
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_id
字段不为null/零,则它将显示父级名称,否则显示“Root Grade”。关于activerecord - 在Yii2中,如何将表格与其自身连接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30900412/