从Magento自定义模块中的2个表中访问数据

JSw*_*ete 5 model magento

我需要一些帮助.我已经在magento中创建了一个需要与多个表交互的自定义​​模块.

我使用以下内容来获取表名

 <entities>
     <support1>
       <table>table1</table>
     </support1>
     <support2>
       <table>table2</table>
     </support2>   
     <support3>
       <table>table3</table>
     </support3>      
  </entities>
Run Code Online (Sandbox Code Playgroud)

然后我将以下内容添加到我的模型中

  public function _construct()
 {
     parent::_construct();
     $this->_init('support/support1');
     $this->_init('support/support2');
     $this->_init('support/support3');
 }
Run Code Online (Sandbox Code Playgroud)

在mysql4文件夹中我有......

 public function _construct()
 {
     $this->_init('support/support1', 'ticket_id');
     $this->_init('support/support2', 'dept_id');
     $this->_init('support/support3', 'priority_id');
 }
Run Code Online (Sandbox Code Playgroud)

而在Collection.php我有...

public function _construct()
 {
     parent::_construct();
     $this->_init('support/support1');
     $this->_init('support/support2');
     $this->_init('support/support3');
 }
Run Code Online (Sandbox Code Playgroud)

所以使用

$collection = Mage::getModel('support/support')->getCollection();
Run Code Online (Sandbox Code Playgroud)

我如何定义对support1或support2等的访问权限.我试过使用...

$collection = Mage::getModel('support/support1')->getCollection();
Run Code Online (Sandbox Code Playgroud)

$collection = Mage::getModel('support/support')->getCollection('support1');
Run Code Online (Sandbox Code Playgroud)

但两者都失败了,这怎么可能起作用?

提前致谢.

Ala*_*orm 11

Magento没有"一个模块,一个数据类"结构.相反,单个模块可能包含许多不同的模型.每个模型类访问一个表.

所以,你的代码生成工具为你提供了三个类

Package_Support_Model_Support                             //model
Package_Support_Model_Resource_Mysql4_Support             //model resource
Package_Support_Model_Resource_Mysql4_Support_Collection  //collection
Run Code Online (Sandbox Code Playgroud)

这三个类构成了Magento中的单个模型.

所以如果你想要support1,你还需要三个类

Package_Support_Model_Support1                             //model
Package_Support_Model_Resource_Mysql4_Support1             //model resource
Package_Support_Model_Resource_Mysql4_Support_Collection1  //collection
Run Code Online (Sandbox Code Playgroud)

哪个会启用

Mage::getModel('support/support1');
Run Code Online (Sandbox Code Playgroud)

上面的代码示例获取一个模型支持模块,其名称是支持1.

单个StackOverflow答案的细节太多了,但是如果你需要更多的帮助,这是我的一篇较旧的文章,它涵盖了从零开始创建模型而无需代码创建工具.