我正在尝试在两个表上执行简单连接,并且无法找到正确的语法 - 我知道我错过了一些简单的事情。
从'用户'表中我需要id(工作正常) 从'meta'表我需要last_name(不工作)
$q = Doctrine_Query::create()
->from('Users u')
->leftJoin('u.Meta m');
$users = $q->execute();
//attempt 1
foreach($users as $user){
$user_array[$user->id] = $user->last_name;
}
//attempt 2
foreach($users as $user){
$user_array[$user->id] = $user->m.last_name;
}
我也试过添加一个明确的 选择(u.id,m.last_name) 查询但结果始终相同
Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message
'Unknown record property / related component "last_name" on "Users"
显然,我尝试访问的属性不在users表中。 - 查询工作正常,好像我没有请求last_name字段 - 我的应用程序按预期工作..
//proof
foreach($users as $user){
$user_array[$user->id] = 'fake_last_name!';
}
任何人都可以提供一个简单的示例,说明我打算如何做到这一点(甚至是文档中页面的链接)所有在doucmentation中JOINING DQL的示例都将查询输出到SQL而不是迭代结果。 ..
答案 0 :(得分:1)
我设法解决了......
http://www.doctrine-project.org/documentation/manual/1_2/en/working-with-models
foreach($users as $user){
$user_array[$user->id] = $user->Meta->last_name;
}