Mage::getResourceModel()
コレクションを使用する場合を除いて、Magento 開発者が を使用する必要がある状況はありますか?
Mage::getResourceModel()
私はしばらくの間 Magento で開発を行ってきましたが、独自に使用する必要がある状況にまだ遭遇していません。
Mage::getResourceModel()
コレクションを使用する場合を除いて、Magento 開発者が を使用する必要がある状況はありますか?
Mage::getResourceModel()
私はしばらくの間 Magento で開発を行ってきましたが、独自に使用する必要がある状況にまだ遭遇していません。
標準の CRUD パターンに当てはまらないモデル/リソース モデルのペアを使用していて、リソース モデルのパブリック メソッドを直接呼び出したい場合。
コードベースでのこれからのいくつかの例(頭のてっぺんから)
Mage/Admin/Model/Session.php
100: $this->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
138: $this->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php
179: $configurable = Mage::getResourceModel('catalog/product_type_configurable_attribute')
191: $nodeChildren = Mage::getResourceModel('catalog/product_attribute_collection')
233: $collection = Mage::getResourceModel('catalog/product_attribute_collection')
243: $attributes = Mage::getResourceModel('catalog/product_attribute_collection')
リソース モデル インスタンスのみを取得する場合に使用する必要がgetResourceModel
あります (これもコレクションのある種の最適化ですが、コレクションがリソース モデルであることは本当にばかげています)。たとえば、リソース モデルを取得するには、次を使用できます。
Mage::getModel('my_module/path_to_resource_model');
このコードは、 name のモデルを作成しますMy_Module_Model_Path_To_Resource_Model
。ただし、config.xml 内でリソース モデル クラスのプレフィックスを指定する可能性があるため (たとえば、Mage_Cms のように)、これは適切な解決策ではありません。
............................................
<models>
<cms>
<class>Mage_Cms_Model</class>
<resourceModel>cms_mysql4</resourceModel>
</cms>
<cms_mysql4>
<!-- ----> --> <class>Mage_Cms_Model_Mysql</class>
............................................
ただしMage::getResourceModel
、システムを使用すると、リソース モデル クラスのプレフィックスが読み取られます (後で変更できるようになります)。したがって、最初のコード スニペットは次のように書き換えることができます。
Mage::getResourceModel('my_module/model');