Yii2中与ActiveRecord关系的循环依赖

时间:2014-09-26 07:14:50

标签: activerecord dependency-injection circular-dependency yii2 di-containers

我通过在Yii2框架中定义它们之间的关系来使用ActiveRecord模型。现在我尝试使用依赖注入容器和我的ActiveRecord模型,并希望注入我的依赖项。但循环依赖问题令我感到困惑。

如果我们像解释Here那样定义我们的关系,那么我们最终会遇到循环依赖问题吗?或者我错过了什么?

感谢您的帮助和指示。

编辑: 我的模型中的代码示例。

class NavMenu extends \yii\db\ActiveRecord {
    public function getNavItemMenu() {
        return $this->hasOne(NavItemMenu::className(), ['id' => 'nav_item_menu_id' ]);
    }
}


class NavItemMenu extends \yii\db\ActiveRecord {
    public function getNavMenus() {
        return $this->hasMany(NavMenu::className(), ['nav_item_menu_id' => 'id' ]);
    }
}

以上代码简化只是为了让您了解问题。

1 个答案:

答案 0 :(得分:0)

答案在你给我们的链接中:)

您应该将inverseOf()添加到getNavMenus()关系:

public function getNavMenus() {
    return $this->hasMany(NavMenu::className(), ['nav_item_menu_id' => 'id' ])
                ->inverseOf('navItemMenu');
}