开发者

PHP / Zend Framework: Force prepend table name to column name in result array?

I am using Zend_Db_Select currently to retrieve hierarchical data from several joined tables. I need to be able to convert this easily into an array. Short of using a switch statement and listing out all the columns individually in order to sort the data, my thought was that if I could get the table names auto-prepended to the keys in the result array, that would solve my problem. So considering the following (assembled) SQL:

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

I would normally get a result array like this:

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

But instead I want this:开发者_Python百科

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

Does anyone have an idea how to achieve this?

Thanks!


As robertbasic eludes to, you'll need to extend your Row & RowSet classes to accomplish this. Take a look here to get started http://framework.zend.com/manual/en/zend.db.table.rowset.html


Autoprepending without extending parts of ZF are AFAIK is not possible. You can, however tell it how to name the columns in the fetched rowset:

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

and so on...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜