2010-06-07 65 views
1

我目前使用Zend_Db_Select从几个连接表中检索分层数据。我需要能够轻松地将其转换为数组。为了对数据进行排序,我没有使用switch语句并单独列出所有列,我的想法是,如果我可以将表名自动添加到结果数组中的键中,那将解决我的问题。因此,考虑以下(组装)SQL:PHP/Zend Framework:强制将表名添加到结果数组中的列名?

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' 

没有人有一个想法如何实现这一目标?

谢谢!

+0

所以你需要前缀,因为一些数据去了一个地方,另一个? – allnightgrocery 2010-06-07 14:25:13

回答

1

自动选择不扩展ZF的部件是AFAIK是不可能的。不过你可以告诉它如何命名在所获取的行集的列:

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

等等...