php – “用户跟随”与PropelORM – 三向关系

有人可以指出我在正确的方向做一个“用户跟随”的事情。我有3个表:users,user_follows和一个帖子。

如果我水合了一个用户对象,我可以得到一个数组的用户id他们遵循…一个post对象知道哪个用户发布它…但是努力为只给给定的用户跟随的用户的帖子。

目前有这个,从每个人返回帖子。

    $posts = PostsQuery::create()
        ->orderByDate('desc')
        ->limit('12')
        ->find();
    return $posts;

需要做filterByXXX()…

Propel ORM不支持同一表中的实体之间的多对多关系。但是您可以使用EqualNestBehavior来使其工作。

这样您的代码可能如下所示:

$user = UsersQuery::create()->findPk($userId);

$follows = $user->getFollows();

$posts = PostsQuery::create()
        ->filterByUser($follows)
        ->orderByDate('desc')
        ->limit('12')
        ->find();

这里是模式的相关部分:

<table name="follow">
  <behavior name="equal_nest">
    <parameter name="parent_table" value="users" />
  </behavior>
  <!-- you do not need to specify any colums for the "follow" table, the behavior will add them automatically -->
</table>
http://stackoverflow.com/questions/30315164/user-follows-with-propelorm-three-way-relationship

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:php – “用户跟随”与PropelORM – 三向关系