我正在使用Yii 1.x版本。
我在使用两个不同的模型与同一个表建立关系时遇到困难。我的情况是这样的。
以下是我桌子的字段。
用户: id
,firstname
,lastname
。
UserFriendList: id
,user_id
,friend_user_id
我想在两个模型之间建立关系,以便我可以获取任何用户的所有朋友信息。请建议我实现这一目标的最佳方法是什么?
注意: User表存储用户信息。 用户朋友列表表存储用户的好友列表。
答案 0 :(得分:0)
尝试 -
在User
模型中 -
'friends' => array(self::HAS_MANY, 'UserFriendList', 'user_id'),
在UserFriendList
模型中 -
'user' => array(self::BELONGS_TO, 'User', 'user_id'),
答案 1 :(得分:0)
两个表 - 用户和&朋友
CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(50) NOT NULL, `name` varchar(100) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; CREATE TABLE IF NOT EXISTS `friend` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `friend_user_id` int(11) NOT NULL, `status` varchar(1) NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `friend_user_id` (`friend_user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
-
ALTER TABLE `friend` ADD CONSTRAINT `friend_ibfk_2` FOREIGN KEY (`friend_user_id`) REFERENCES `user` (`id`), ADD CONSTRAINT `friend_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`);
我的用户模型中的关系
return array( 'friends' => array(self::HAS_MANY, 'Friend', 'friend_user_id'), 'friends1' => array(self::HAS_MANY, 'Friend', 'user_id'), );
和朋友模特
return array( 'friendUser' => array(self::BELONGS_TO, 'User', 'friend_user_id'), 'user' => array(self::BELONGS_TO, 'User', 'user_id'), );
我希望这会有所帮助。我在yiiforum找到了它