0

我通过在Yii2框架中定义它们之间的关系来使用ActiveRecord模型。现在我正在尝试在ActiveRecord模型中使用依赖注入容器,并希望注入我的依赖关系。但循环依赖问题令我困惑。Yii2中的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' ]); 
    } 
} 

上面的代码被简化,只是为了让您对问题有所了解。

+0

你试图写一个模型文件?与所有的关系 – Kshitiz 2014-09-26 07:31:48

+0

我所做的是在mysql数据库本身定义一个关系,并使用gii工具来生成模型。然后我修改模型。希望这个帮助。 还是newiie到yii2。 – Kshitiz 2014-09-26 07:43:44

+0

所以你需要手动关系,即使它不存在于mysql表或类似的东西。 请分享一些代码和表格结构 – Kshitiz 2014-09-26 07:47:45

回答

0

的雁是你给了我们:)链接

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

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