Php &引用;用户遵循;三方关系
有人能给我指出一个正确的方向去做“用户跟随”之类的事情吗。我有3个表:users、useru follows和a posts 如果我创建一个用户对象,我可以得到一个用户id的数组,然后一个post对象就知道是哪个用户发布了它,但要为给定用户所关注的用户获取帖子却很困难 目前有这个,它返回每个人的帖子Php &引用;用户遵循;三方关系,php,mysql,orm,propel,Php,Mysql,Orm,Propel,有人能给我指出一个正确的方向去做“用户跟随”之类的事情吗。我有3个表:users、useru follows和a posts 如果我创建一个用户对象,我可以得到一个用户id的数组,然后一个post对象就知道是哪个用户发布了它,但要为给定用户所关注的用户获取帖子却很困难 目前有这个,它返回每个人的帖子 $posts = PostsQuery::create() ->orderByDate('desc') ->limit('12')
$posts = PostsQuery::create()
->orderByDate('desc')
->limit('12')
->find();
return $posts;
需要执行filterByXXX()…ORM不支持同一表的实体之间的多对多关系。但是你可以用它来工作 使用此选项,您的代码可以如下所示:
$user = UsersQuery::create()->findPk($userId);
$follows = $user->getFollows();
$posts = PostsQuery::create()
->filterByUser($follows)
->orderByDate('desc')
->limit('12')
->find();
下面是模式的相关部分:
使用
use*Query
可以轻松完成此操作
$posts = PostsQuery::create()
->useUserFollowsQuery()
->filterByUserId([12,34,55])
->endUse()
->orderByDate('desc')
->limit('12')
->groupById() //important if you join a one-to-many relation
->find();
return $posts;
优化的查询将使用addJoinCondition:
->innerJoinUserFollows()
->addJoinCondition('UserFollows', 'UserFollows.user_id = ?',[123,34], Criteria::IN)
试试这个:肯定帮了我的忙。给我指出了正确的方向,谢谢!