PHP / Zend Framework: принудительно добавлять имя таблицы к имени столбца в массиве результатов? - PullRequest
1 голос
/ 07 июня 2010

В настоящее время я использую Zend_Db_Select для извлечения иерархических данных из нескольких объединенных таблиц. Мне нужно иметь возможность легко преобразовать это в массив. Если не считать оператора switch и перечислять все столбцы по отдельности для сортировки данных, я думал, что если бы я мог получить имена таблиц, автоматически добавленные к ключам в массиве результатов, это решило бы мою проблему. Итак, учитывая следующий (собранный) SQL:

SELECT user.*, contact.* FROM user INNER JOIN contact ON contact.user_id = user.user_id

Обычно я получаю массив результатов, подобный этому:

[username] => 'bob',
[contact_id] => 5,
[user_id] => 2,
[firstname] => 'bob',
[lastname] => 'larsen'

Но вместо этого я хочу это:

[user.user_id] => 2,
[user.username] => 'bob',
[contact.contact_id] => 5,
[contact.firstname] => 'bob',
[contact.lastname] => 'larsen'

У кого-нибудь есть идеи, как этого добиться?

Спасибо!

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Поскольку robertbasic ускользает от вас, вам нужно расширить свои классы Row & RowSet для достижения этой цели. Посмотрите здесь, чтобы начать http://framework.zend.com/manual/en/zend.db.table.rowset.html

1 голос
/ 07 июня 2010

Автоподготовка без расширения частей ZF является AFAIK невозможна. Однако вы можете указать, как назвать столбцы в выбранном наборе строк:

$select->from(array('users'=>$this->_name),
    array('user_id' => 'id', 'user_name' => 'username'));

и так далее ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...