【发布时间】:2013-04-07 03:25:16
【问题描述】:
我是新来的推进器。 我面临一个问题,要从具有多对多关系的两个表中获取所有记录。
我有一个用户和组表。和一个连接表 user_group。
用户和组有多对多的关系
i 并使用 follow 方法在单个查询中查找所有相关数据。
schema.xml 文件
<table name="user" phpName="User" idMethod="native">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true" />
<column name="name" type="VARCHAR" size="100" required="true" />
<column name="email" type="VARCHAR" size="100" required="true" />
<column name="age" type="INTEGER" required="true" />
<column name="gender" type="VARCHAR" size="50" required="true" />
<column name="company" type="VARCHAR" size="100" required="true" />
<column name="address" type="VARCHAR" size="100" required="true" />
<column name="country" type="VARCHAR" size="100" required="true" />
<column name="mobileno" type="DOUBLE" required="true" />
<column name="comment_about" type="VARCHAR" size="200" required="true" />
<foreign-key foreignTable="post" name="post" phpName="postWriter">
<reference local="id" foreign="user_id" />
</foreign-key>
</table>
<table name="group">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" />
<column name="name" type="VARCHAR" size="32" />
</table>
<table name="user_group" isCrossRef="true">
<column name="user_id" type="INTEGER" primaryKey="true" />
<column name="group_id" type="INTEGER" primaryKey="true" />
<foreign-key foreignTable="user">
<reference local="user_id" foreign="id" />
</foreign-key>
<foreign-key foreignTable="group">
<reference local="group_id" foreign="id" />
</foreign-key>
</table>
并且我试图找到这样的相关数据
$userObj = UserQuery::create()
->join('Group')
->find();
但是上面的查询给了我一个致命的错误
Fatal error: Uncaught exception 'PropelException' with message 'Unable to execute SELECT statement [SELECT user.id, user.name, user.email, user.age, user.gender, user.company, user.address, user.country, user.mobileno, user.comment_about FROM `user` INNER JOIN `` ON ()
请帮助我,我们可以解决这个问题。
【问题讨论】:
-
你想用那个查询来完成什么?
-
我想在一个查询中获取具有相关组的用户,就像在 cakephp 中一样。我正在使用这个 $groupobj = GroupQuery::create() ->find(); foreach($groupobj as $group){ var_dump($group->getUsers()->toArray());上面的查询将在 foreach 循环中选择查询用户我认为这不是一个与数据库大小相关的好方法来查找所有用户组
标签: php orm schema relationship propel