我喜欢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();
与with()
一起使用多对多时,不可能使用limit()
。
所以我尝试使用简单joinWith
更改join
并在结果上调用populateRelation('UserTag')
,但Propel说:
"Calling getRelation() on an unknown relation, UserTag"
有人可以告诉我是否有办法在User对象上调用populateRelation()?
答案 0 :(得分:0)
使用joinWith与()完全相同,只要不能使用限制。
您无需使用用户查询来加入这些列。你可以这样做:
EventQuery::create()
->joinWithUser(Event.User)
->joinWithUserTag(User.UserTag)
->find();
如果你想使用限制,那么使用Limit作为join,然后运行populateRelation(如果你正在使用joinWith,你不应该需要populateRelation,因为这两个应该是多余的)