DQL içinde Doktrin İlişkiler alın

0 Cevap php

Ben üç tablo var:

Project:
  ...
  relations:
    User:
      local: authorId
      foreign: id
    Users:
      class: User
      local: projectId
      foreign: userId
      refClass: UserProjects

User:
  ...
  relations:
    Projects:
      class: Project
      local: userId
      foreign: projectId
      refClass: UserProjects

UserProjects:
  columns:
      id:
        type: integer
        primary: true
        autoincrement: true
      userId: integer
      projectId: integer

Ne yapmak istiyorsunuz, bir kullanıcı ilişkilidir projeleri dönmek için bir DQL bildiri yazmak olduğunu. Ben şu taklit çalışıyorum:

SELECT p.* 
FROM user_projects AS up
LEFT JOIN project AS p ON up.projectid = p.id
LEFT JOIN user AS u ON up.userid = u.id
WHERE u.id = 1

Ben (o u select deyiminde kullanılan olmamasından şikayet çünkü u. * orada olduğu) aşağıdaki ile geldi Doktrini talimatları okuyarak:

$q = Doctrine_Query::create()
  ->from('Model_User u')
  ->select('u.*, p.*')
  ->leftJoin('u.Projects p');
$result = $q->execute();

Ne olsa döndürür ilişkili projeleri ile doldurulmuş bir 'Projeler' özelliği ile tek bir Model_User nesne içeren bir veri kümesidir. Ben sadece mümkün olmadığını döndü projeler var isterdim, ama ben bunu anlamaya gibi olamaz. Bu mümkün mü?

0 Cevap