【发布时间】:2011-02-03 19:50:03
【问题描述】:
我将 Doctrine 1.2 与 Symfony 1.4 一起使用。假设我有一个 User 模型,它有一个 Profile。这些定义为:
用户:
- 身份证
- 用户名
- 密码
- created_at
- updated_at
简介:
- 身份证
- user_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"
)
)
但是,我希望用户包含“虚拟”列(不确定这是否是正确的术语),以便配置文件中的字段实际上看起来像是用户的一部分。换句话说,我喜欢看到 print_r 语句看起来更像:
Array (
"User" => Array (
"id" => 1,
"username" => "jschmoe",
"first_name" => "Joseph",
"last_name" => "Schmoe"
)
)
有没有办法通过我的 schema.yml 文件或通过我的 Doctrine_Query 对象来做到这一点?
【问题讨论】:
标签: join symfony1 doctrine calculated-columns doctrine-1.2