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ü?