简单的Magento 2 CRUD模型所需的代码和配置示例?


8

作为最终用户程序员,我该如何在Magento 2中创建新的“ CRUD”模型?也就是说,我要创建PHP类文件和XML配置文件,

  1. 让我从数据库表中创建,读取,更新和删除数据
  2. 让我创建将存储此信息的初始数据库表。

在Magento 1中,这由模型,资源模型,设置资源模型和中的各种节点处理config.xml。目前尚不清楚100%在Magento 2中如何处理。

是否为此提供了示例模块或清晰的教程?还是从现有的核心模型(如CMS页面)中倒退是我们唯一的选择?

Answers:


4

我自己追踪了这个。

首先,Magento 2 不需要其他XML即可创建CRUD模型。Magento 2自动知道如何基于命名约定创建所需的资源模型和集合对象。

Magento 2 确实需要

  • 型号类别
  • 资源模型类
  • 收集模型类
  • 架构安装类

这些中的每一个的细节都超出单个Stack Exchange答案的范围,但是CMS Page模型提供了每个类的简单示例。

https://github.com/magento/magento2/blob/develop/app/code/Magento/Cms/Model/Page.php

https://github.com/magento/magento2/blob/develop/app/code/Magento/Cms/Model/ResourceModel/Page.php

https://github.com/magento/magento2/blob/develop/app/code/Magento/Cms/Model/ResourceModel/Page/Collection.php

https://github.com/magento/magento2/blob/develop/app/code/Magento/Cms/Setup/InstallSchema.php

另外,我的Magento 2代码生成工具杵现在具有了generate_crud_model命令。


3

要创建初始数据库表,您需要在扩展程序的Setup文件夹中创建InstallSchema.php文件。这需要实现InstallSchemaInterface。

您是否签出了此扩展程序:https : //github.com/tzyganu/Magento2SampleModule?它帮助我了解了很多有关Magento 2 CRUD的知识。我认为它与Magento 2.0.0兼容,但我不确定。您还可以在此处找到InstallSchema的示例。


Magento最近更新了我们自己的示例模块,您也可以签出。
史蒂夫·约翰逊

@SteveJohnson该链接中是否有一个CRUD模型示例?我没看到
艾伦·斯托姆

有人告诉我有一个模块正在等待合并,但我不知道确切的细节。这是内部GitHub上的PR#2。
史蒂夫·约翰逊

2

我的方法遵循以下步骤:
1-注册模块(registration.php和module.xml)
2-创建系统配置文件(system.xml)
3-创建配置文件(config.xml)
4-创建访问控制列表( acl.xml)
5-创建安装脚本(InstallSchema.php)
6-管理实体持久性(模型,资源,集合)
7-构建前端接口
8-构建后端接口

从第5步开始,我认为那里的时间很多。您可以在magento核心示例中看到示例。这取决于您需要归档的内容
简单的平面表?参见模块(如cms)。该模块最清楚地了解
EAV表吗?参见模块目录,客户,销售,税收。


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.