0
我有三個表:獲取主義的關係在DQL
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
我希望做的是寫一個DQL語句返回該用戶相關聯的項目。我試圖仿效以下幾點:
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
通過主義指導閱讀,我想出了以下(U *是在那裏,因爲它抱怨ü沒有在SELECT語句中使用。):
$q = Doctrine_Query::create()
->from('Model_User u')
->select('u.*, p.*')
->leftJoin('u.Projects p');
$result = $q->execute();
它返回的是一個包含單個Model_User對象的數據集,該對象的'Projects'屬性填充了關聯的項目。如果可能的話,我只想讓項目返回,但我似乎無法弄清楚。可能嗎?