在Yii2中,如何将表连接到自身?

Ale*_*the 5 activerecord self-join yii2

我有一个页面表.页面可以有父母,也可以是页面.我想选择parent_id = NULL及其'children'的所有页面.但是当我试着这个

public function getPages()
{
    return $this->hasMany(Page::className(), ['parent_id' => 'id']);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个1066不唯一的表/别名:'page'错误...我知道如何在Yii1中解决这个问题,但我无法弄清楚在Yii2中修复它.

Den*_*G B 3

您需要为表名添加别名。

 $this->hasMany(Category::className(), ['parent_id' => 'id'])->from(['cat' => 'category']);
Run Code Online (Sandbox Code Playgroud)

请参阅此处的讨论。