0

我喜欢 populateRelation 的工作方式,但在这种特殊情况下,我真的很困惑!

架构非常简单:

event
  id
  title
  user_id
user
  id
  name
user_tag
  id
  tag
user_tag_rel
  user_id
  tag_id

现在,我需要做的是使用相关的用户和标签获取 10 个事件。

第一个选择是:

EventQuery::create()
  ->joinWithUser()
  ->useUserQuery()
    ->joinWithUserTag()
  ->endUse()
  ->limit(10)
  ->find();

Buu 不可能with()在多对多上与limit().

所以我尝试joinWith用简单的方法改变join并调用populateRelation('UserTag')结果,但 Propel 说:

"Calling getRelation() on an unknown relation, UserTag"

谁能告诉我是否有任何方法可以在 User 对象上调用 populateRelation() ?

4

1 回答 1

0

就不能使用限制而言,使用 joinWith 与 with() 的作用完全相同。

您不需要使用用户查询来加入这些列。你可以这样做:

EventQuery::create()
    ->joinWithUser(Event.User)
    ->joinWithUserTag(User.UserTag)
    ->find();

如果你想使用限制,那么将这些作为加入,使用限制,然后运行 ​​populateRelation(如果你正在做 joinWith,你不应该需要 populateRelation,因为这两个应该是多余的)

于 2013-01-04T01:42:54.927 回答