1、一对多关联查询
$user = Users::get(1);
$comm = $user->comm; //查询这个人user_id 为1 的这个所有的评论。
dump($comm);
//SELECT * FROM `tp_comment` WHERE `uid` = 1
//也可以先查询后使用
$user = Users::get(1,'comm');
2、一对多关联过滤查询
$user = Users::get(1);
$comment = $user->comm()->where('is_show',1)->select();
//SELECT * FROM `tp_comment` WHERE `uid` = 1 AND `is_show` = 1
dump($comment);
3、一对多关联过滤查询 使用getBy
//关联过滤查询 使用getBy
$user = Users::get(1);
$comm = $user->comm()->getByContent('这个东西我不会再买了。');
//SELECT * FROM `tp_comment` WHERE `uid` = 1 AND `content` = '这个东西我不会再买了。' LIMIT 1
dump($comm);
4、一对多查询有评论过的用户列表
//查询有评论过的用户列表
$user = Users::has('comm')->select();
//SELECT `Users`.* FROM `tp_users` `Users` INNER JOIN `tp_comment` `Comment` ON `Users`.`user_id`=`Comment`.`uid` GROUP BY `Comment`.`uid` HAVING count(*)>=1
//return json($user);
//查询评论过2次以上的用户 带条件
$user = Users::has('comm','>=',2)->select();
//SELECT `Users`.* FROM `tp_users` `Users` INNER JOIN `tp_comment` `Comment` ON `Users`.`user_id`=`Comment`.`uid` GROUP BY `Comment`.`uid` HAVING count(*)>=2
//return json($user);
//查询评论内容包含有 ThinkPHP5快速入门的用户
$user = Users::hasWhere('comm',['content'=>'ThinkPHP5视频教程'])->select();
//SELECT `Users`.* FROM `tp_users` `Users` INNER JOIN `tp_comment` `Comment` ON `Users`.`user_id`=`Comment`.`uid` WHERE `Comment`.`content` = 'ThinkPHP5视频教程' GROUP BY `Users`.`user_id`
5、 一对多关联更新
//关联更新
$user = Users::get(1);
$comm = $user->comm()->getByContent('这个东西我不会再买了。');
$comm->content = 'ThinkPHP5快速入门';
$comm->save();
//SELECT * FROM `tp_comment` WHERE `uid` = 1 AND `content` = '这个东西我不会再买了。' LIMIT 1
6、一对多查询构建器的update方法进行更新
//查询构建器的update方法进行更新
$user = Users::get(1);
$user->comm()->where('content','ThinkPHP5快速入门')->update(['content'=>'我不会!']);
//UPDATE `tp_comment` SET `content`='我不会!' WHERE `uid` = 1 AND `content` = 'ThinkPHP5快速入门'
7、一对多删除部分关联数据
//删除部分关联数据
$user = Users::get(1);
//删除部分关联数据
$comm = $user->comm()->getByContent('ThinkPHP5视频教程');
//SELECT * FROM `tp_comment` WHERE `uid` = 1 AND `content` = 'ThinkPHP5视频教程' LIMIT 1
$comm->delete();
//DELETE FROM `tp_comment` WHERE `comment_id` = 5
8、一对多删除所有的关联数据
//删除所有的关联数据
$user = Users::get(1);
//SELECT * FROM `tp_users` WHERE `user_id` = 1 LIMIT 1
$user->comm()->delete();
//DELETE FROM `tp_comment` WHERE `uid` = 1
723

被折叠的 条评论
为什么被折叠?



