php – Doctrine fetch join
发布时间:2020-05-31 01:04:44 所属栏目:PHP 来源:互联网
导读:首先,我将给出一些伪代码示例,然后我将解释问题是什么.让我说我有两个实体User和Phonenumber.他们的关系是一对多的.在我的UserRepository中我可以有类似的东西: class UserRepository{ public function getUser($id, $type) { $users = $this-createQuery(S
|
首先,我将给出一些伪代码示例,然后我将解释问题是什么.让我说我有两个实体User和Phonenumber.他们的关系是一对多的.在我的UserRepository中我可以有类似的东西: class UserRepository
{
public function getUser($id,$type)
{
$users = $this->createQuery("SELECT u,p FROM User u JOIN u.phonenumbers p
WHERE u.id = :id AND p.type = :type")
->setParameters(array(
'id' => $id,'type' => $type,))
->getResult();
return $users[0];
}
}
在我的应用程序,如果我有类似的东西: $user = $userRepo->getUser(1,'home');
var_dump($user->getPhonenumbers()); // here phonenumbers collection is ok
$user = $userRepo->getUser(1,'work');
var_dump($user->getPhonenumbers()); // Here phonenumbers collection is wrong.
// It's exactly the same as the previous one.
所以我的问题是:是否可以使用获取连接(具有不同的标准)并且每次都能获得正确的集合? 获取加入和过滤集合不是很好地协同工作的东西.这是你应该怎么做的:SELECT
u,p
FROM
User u
JOIN
u.phonenumbers p
JOIN
u.phonenumbers p2
WHERE
u.id = :id
AND
p2.type = :type
这适用于第二次连接(而非水合)p2的过滤,这导致正确的水合和过滤. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
