我正在开发一个使用 Zend Framework 开发的应用程序。我已经在模型中定义了关系,并且可以愉快地使用它们,例如:
$rowset = $row->findManyToManyRowset('People', 'Jobs');
但是,我遇到了一个问题,即返回的行集在“人员”和“工作”中具有相同的列名,因此合并了数组键,从而丢失了最终行集中的一些数据。
我知道我可以将Zend_Db_Select
对象findManyToManyRowset()
作为参数之一传递,但找不到任何说明在这种情况下如何使用它的文档,例如:
$select = $this->select()->from(array(
'p' => 'people',
'j' => 'jobs'
),
array(
'person_id' => 'p.id',
'job_id' => 'j.id',
'person_code' => 'p.code',
'job_code' => 'j.code'
)
);
如果我尝试使用上面的代码,我会收到一条消息,例如:
Error: No reference rule "" from table People to table Jobs
谁能告诉我这应该怎么做?我知道我可以更改数据库中的列名,但我更喜欢更改代码,而不是重新设计我的数据库结构并更新所有相关代码。
注意:如果没有上述某种形式的列别名,则返回的行集如下所示(即,它合并具有相同名称的列):
[_data:protected] => Array
(
[id] => 1
[code] => SX342
)
干杯,
马特