我一直在尝试使用 magento 的命令加入两个自定义表。搜索后我遇到了这个通用代码块
$collection = Mage::getModel('module/model_name')->getCollection();
$collection->getSelect()->join( array('table_alias'=>$this->getTable('module/table_name')),
'main_table.foreign_id = table_alias.primary_key',
array('table_alias.*'),
'schema_name_if_different');
将此作为模板之后,我尝试将我的表连接在一起,但只返回了诸如incorrect table name
或table doesn't exist
或其他一些错误之类的错误。
只是为了澄清事情,有人可以根据我的理解纠正我吗
$collection = Mage::getModel('module/model_name')->getCollection();
获取模型的实例。在该模型中是保存所需数据的表(对于本例,我将调用表 p)
$collection->getSelect()
从表 p 中选择数据
->join()
需要三个参数才能将两个表连接在一起
参数 1
array('table_alias'=>$this->getTable('module/table_name'))
'你给表的别名' => '你想添加到集合中的表(这已经在模型文件夹中设置了)'
参数2
'main_table.foreign_id = table_alias.primary_key'
这一点我不明白(虽然看起来很简单)
我的主表 (p) 没有外部 id(它有它的主键 - 这也是它的外部 id)?
必须等于您在 param1 中提供的别名
参数 3
'main_table.foreign_id = table_alias.primary_key'
从别名中获取所有信息
我的理解哪里出错了?