Он извлекает результаты в прямоугольной форме и использует псевдонимы таблиц в качестве префиксов и псевдонимы столбцов в качестве имени. Таким образом, все столбцы будут доступны через tableAlias_columnAlias.
ользую Doctrine 1.2 с Symfony 1.4. Допустим, у меня есть модель пользователя, которая имеет один профиль. Они определены как:
Пользователь:
Я быимя пользователяпарольсоздано вupdated_atПрофиль:
Я быЛогин пользователяИмяФамилияадресгородПочтовый индексЯ бы обычно получал такие данные:
$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?