Добавление виртуальных столбцов в текущую таблицу в Doctrine?

Я использую Doctrine 1.2 с Symfony 1.4. Допустим, у меня есть модель пользователя с одним профилем. Они определены как:

Пользователь:

  • id
  • имя пользователя
  • пароль
  • created_at
  • updated_at

Профиль:

  • id
  • user_id
  • first_name
  • last_name
  • address
  • city
  • postal_code

Обычно я получаю такие данные:

$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"
    )
)

Однако я бы хотел, чтобы пользователь включил "virtual" столбцы (не уверен, что это правильный термин), так что поля из профиля на самом деле выглядят так, как будто они являются частью пользователя. Другими словами, я хотел бы , чтобы оператор print_r выглядел больше как:

Array (
    "User" => Array (
        "id" => 1,
        "username" => "jschmoe",
        "first_name" => "Joseph",
        "last_name" => "Schmoe"
    )
)

Есть ли способ сделать это через мою схему. yml или через мой объект Doctrine_Query?

7
задан Matt Huggins 3 February 2011 в 20:42
поделиться