我将 Doctrine 1.2 与 Symfony 1.4 一起使用。假设我有一个 User 模型,它有一个 Profile。这些定义为:
用户:
- ID
- 用户名
- 密码
- created_at
- 更新时间
轮廓:
- ID
- 用户身份
- 名
- 姓
- 地址
- 城市
- 邮政编码
我通常会得到这样的数据:
$query = Doctrine_Query::create()
->select('u.id, u.username, p.first_name, p.last_name')
->from('User u')
->leftJoin('Profile p')
->where('u.username = ?', $username);
$result = $query->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
print_r($result);
这将输出如下内容:
Array (
"User" => Array (
"id" => 1,
"username" => "jschmoe"
),
"Profile" => Array (
"first_name" => "Joseph",
"last_name" => "Schmoe"
)
)
但是,我希望用户包含“虚拟”列(不确定这是否是正确的术语),以便 Profile 中的字段实际上看起来像是 User 的一部分。换句话说,我希望print_r语句看起来更像:
Array (
"User" => Array (
"id" => 1,
"username" => "jschmoe",
"first_name" => "Joseph",
"last_name" => "Schmoe"
)
)
有没有办法通过我的 schema.yml 文件或通过我的 Doctrine_Query 对象来做到这一点?