Zuerst werde ich ein Beispiel mit etwas Pseudo-Code geben und dann werde ich erklären, was das Problem ist. Lassen Sie mich sagen, ich habe zwei Entitäten User und Phonenumber. Ihre Beziehung ist Eins-zu-Viele. In meinem UserRepository kann ich so etwas haben:Doctrine fetch beitreten
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];
}
}
In meiner app, wenn ich etwas wie:
$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.
So ist meine Fragen: Ist es möglich, beitreten zu verwenden holen (mit unterschiedlichen Kriterien) und um jedes Mal die richtige Sammlung zu bekommen?
Im Moment benutze ich Query :: HINT_REFRESH, was meiner Meinung nach einen gewissen Einfluss auf die Performance haben wird, aber ich werde definitiv Ihre Lösung überprüfen. Vielen Dank für Ihre Zeit. – ventsislaf