Questions tagged «resource-model»

3
如何在Magento 2中为自定义模块实施服务合同?
正如所看到的这篇文章:过时的保存和抽象模型load方法的save和load方法,Magento的2已被弃用发展分支。 因此,现在的优良作法是执行服务合同以处理CRUD实体。 为自定义模块实体实施服务合同时,我需要遵循哪些逐步过程? 注意:我知道我的CRUD模型中可能有成千上万种方法,我只是在要求以下明显的方法:http : //devdocs.magento.com/guides/v2.0/extension-dev-guide /service-contracts/design-patterns.html: get save getList delete deleteById

5
如何在Mage_Catalog_Model_Resource_Product_Collection上设置商店ID?
这项任务是微不足道的。我需要获取启用了平面目录的特定商店视图的产品列表。最明显的解决方案如下: $collection = Mage::getResourceModel('catalog/product_collection') ->setStore($storeId); 实际上,setStore()方法在这里没有什么区别,因为方法是在_initSelect()方法Mage_Catalog_Model_Resource_Product_Collection基于商店ID获得平面表的名称之后调用的。由于尚未设置商店ID,因此它将采用当前商店ID。 因此,显而易见的解决方法是在获取模型之前设置当前商店ID。 Mage::app()->setCurrentStore($storeId); $collection = Mage::getResourceModel('catalog/product_collection'); 会的。但仅当您需要一次收集一次时。如果您需要循环获取一个集合,或者只需要两个背对背集合,则将无法为其设置特定的商店。 原因是Mage_Catalog_Model_Resource_Product_Flat该类具有其自己的_storeId属性,并且在构造函数中将其设置为当前商店ID。这就是为什么它将被第一次设置。然后由于某种原因(天堂知道我希望有一个)在Mage_Eav_Model_Entity_Collection_Abstract::_init每个资源模块中被作为单例获取。因此,没有第二个调用的构造函数。 这一切看起来都非常错误,以至于我很确定我错了,这不是另一个(或两个)Magento错误。希望有人能对此有所启发。

1
关于收集模型和资源模型
我对使用资源模型和集合模型感到困惑。有时,当我看到使用特定属性加载产品的示例时,在某些示例中,它们使用集合模型,有时使用资源模型。 另外,什么时候可以使用特定方法get...以及set...表行名称?喜欢getName,getId。我尝试使用但无法获取值,并且显示错误:“在对象中调用未定义的方法” $product = Mage::getModel('catalog/product') ->loadByAttribute('name', 'product_name'); echo $product->getName(); echo $product->getSku(); 它显示“未定义的方法getSku()” 如果使用var_dump($product),则SKU显示在对象中,但是无法使用getSku()... 获取SKU 。


1
Magento 2中创建多对多关系的最佳实践方法是什么?
我环顾了核心,并看到了几个模型之间多对多关系的一些示例,但是我看不到对此的明确答案。 例如,假设我们创建了一个新模型,并且希望与现有产品表建立多对多关系。 因此,我们有了新的模型-库存商,我们这样创建了2个表,一个表用于存储库存商名称,另一个用于存储与产品的多对多关系。 安装程序类的截断版本: $table = $setup->getConnection() ->newTable($installer->getTable('stockist')) ->addColumn('stockist_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Stockist Id') ->addColumn('name', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, null, ['nullable' => false], 'Stockist Name'); $table = $installer->getConnection() ->newTable($installer->getTable('stockist_product')) ->addColumn( 'entity_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'nullable' => false, 'primary' => true], …




2
重写资源模型时如何处理不推荐使用的“ Mysql4”类
我必须重写Mage_Catalog_Model_Resource_Category_Flat。 Mage_Catalog_Model_Resource_Eav_Mysql4_Category_FlatMagento 1.7中仍然存在旧的资源类,以实现向后兼容,并扩展了新的资源类。 在代码库中搜索完整的模型别名resource_eav_mysql4_category_flat不会产生任何结果。但是config.xmlMage_Catalog的包含以下行: <deprecatedNode>catalog_resource_eav_mysql4</deprecatedNode> 而且我不知道在哪里以及如何deprecatedNode使用。 重写这种资源模型时会遇到什么困难?我应该重写两个类吗?还是可以安全地忽略mysql4类?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.