yii2 : can't get data from two table with active record
我要从两个表中获取数据:
1 2 3 4 | public function getUser() { return $this->hasOne(Users::className(), ['user_id' => 'user_id']); } |
我想让
我用
1 2 3 4 5 6 7 8 9 10 11 | $res = Comments::find() ->select([ 'comments.comment_id', 'comments.comment_content', 'comments.user_id', 'users.user_id', 'users.user_display_name', 'users.user_name', ]) ->innerJoinWith('user') ->all(); |
号
此代码获取
我该怎么做?
注意:数据库中的用户表是
更新1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | DROP TABLE IF EXISTS `comments`; CREATE TABLE `comments` ( `comment_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_content` text NOT NULL, `comment_approved` enum('no','yes') NOT NULL DEFAULT 'no', `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT '0', `sms_id` bigint(20) unsigned NOT NULL DEFAULT '0', `user_id` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`comment_id`), KEY `fk_comment_sms_id` (`sms_id`), KEY `fk_commetn_user_id` (`user_id`), CONSTRAINT `fk_comment_sms_id` FOREIGN KEY (`sms_id`) REFERENCES `sms` (`sms_id`), CONSTRAINT `fk_commetn_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(60) NOT NULL DEFAULT '', `user_pass` varchar(64) NOT NULL DEFAULT '', `user_level` int(11) NOT NULL DEFAULT '1', `user_email` varchar(100) NOT NULL DEFAULT '', `user_display_name` varchar(250) NOT NULL DEFAULT '', `user_phone_number` varchar(11) NOT NULL, `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `user_activation_key` varchar(60) NOT NULL, `user_status` enum('active','deactive','delete') NOT NULL DEFAULT 'deactive', PRIMARY KEY (`user_id`), UNIQUE KEY `u_user_sign` (`user_name`) USING BTREE, UNIQUE KEY `u_user_email` (`user_email`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; |
。
不确定查询是否返回了任何数据,您将如何显示或测试,但您应该阅读yii中的关系。
使用关系数据
懒惰而急切的装载
在延迟加载的情况下,数据在您尝试访问之前不存在,因此可能不会出现在诸如
我建议您将表重命名为
gii生成
您确定关系定义正确吗?