magento2中模型model常用的方法

EAV和简单模型都是从Magento\Framework\Model\AbstractModel类扩展而来的,该类进一步扩展了Magento\ Framework\DataObject。

DataObject有一些巧妙的方法值得记住。

以下一组方法用于处理数据转换:toArray:将对象数据的数组转换为$keys数组中请求的具有键的数组

toXML:将对象数据转换为XML

toJson:将对象数据转化为JSON

toString:将对象数转换为具有预定义格式的字符串

serialize:将对象数据转换为具有定义的键和值的字符串这些方法的其他组通过magic__call方法实现,启用以下简洁的语法:

get<AttributeName>,例如$object->getPackagingOption()

设置<AttributeName],例如$object->setPackagingOption('plastic_bag')uns<AttributeName>

[例如$object->unsPackagingOptions()具有<AttributeName',

例如$bject->hasPackagingOption[(]要快速理解这种魔力,让我们手动创建如下所示的magelicious_core_log表:

CREATE TABLE `magelicious_core_log` (`entity_id`
    int(10) unsigned NOT NULL AUTO_INCREMENT, `severity_level`
    varchar(24) NOT NULL, `note`
    text NOT NULL, `created_at`
    timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY(`entity_id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8;

借助DataObject的魔力,我们空的Magelicious\Core\Model\Log模型仍然可以保存其数据,如下所示:

$log - > setCreatedAt(new\ DateTime());
$log - > setSeverityLevel('info');
$log - > setNote('Just Some Note');
$log - > save();

虽然这个例子会起作用,但它的作用远不止于此。手动创建表对于构建模块来说是不可行的。Magento对此有一个正确的机制,称为设置脚本。

码小课magento专区:


magento-dn.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容