Ví dụ về Mã và Cấu hình cần thiết cho Mô hình CRUD Magento 2 đơn giản?


8

Làm cách nào tôi, một lập trình viên người dùng cuối, có thể tạo mô hình "CRUD" mới trong Magento 2? Đó là, tôi muốn tạo các tệp lớp PHP và các tệp cấu hình XML sẽ

  1. Hãy để tôi tạo, đọc, cập nhật và xóa dữ liệu từ bảng cơ sở dữ liệu
  2. Hãy để tôi tạo (các) bảng cơ sở dữ liệu ban đầu sẽ lưu trữ thông tin này.

Trong Magento 1, điều này được xử lý bởi Mô hình, Mô hình tài nguyên, Mô hình tài nguyên thiết lập và các nút khác nhau trong config.xml. Không rõ 100% cách xử lý trong Magento 2.

Có một mô-đun mẫu hoặc hướng dẫn rõ ràng ra cho điều này chưa? Hoặc là làm việc ngược từ một mô hình cốt lõi hiện có (như trang CMS) tùy chọn duy nhất của chúng tôi?

Câu trả lời:


4

Theo dõi cái này xuống một mình.

Đầu tiên, Magento 2 không yêu cầu XML bổ sung để tạo mô hình CRUD. Magento 2 tự động biết cách tạo mô hình tài nguyên và các đối tượng thu thập cần thiết dựa trên quy ước đặt tên.

Magento 2 không yêu cầu

  • Lớp mẫu
  • Lớp mô hình tài nguyên
  • Bộ sưu tập mô hình lớp
  • Một lớp cài đặt Schema

Các chi tiết cụ thể của từng trong số này nằm ngoài phạm vi của một câu trả lời Stack Exchange duy nhất, nhưng mô hình Trang CMS cung cấp một ví dụ đơn giản về mỗi lớp.

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

Ngoài ra, Magento 2 công cụ sinh mã chày của tôi bây giờ có một generate_crud_model lệnh.


3

Để tạo các bảng cơ sở dữ liệu ban đầu, bạn cần tạo tệp InstallSchema.php trong thư mục Cài đặt của tiện ích mở rộng. Điều này cần phải thực hiện InstallSchemaInterface.

Bạn đã kiểm tra tiện ích mở rộng này chưa: https://github.com/tzyganu/Magento2SampleModule ? Nó giúp tôi hiểu rất nhiều về Magento 2 CRUD. Tôi nghĩ đó là sự tương thích với Magento 2.0.0, nhưng tôi không chắc. Bạn cũng có thể tìm thấy một ví dụ về InstallSchema ở đó.


Magento gần đây đã cập nhật các mô-đun mẫu riêng của chúng tôi , bạn cũng có thể xem qua.
Steve Johnson

@SteveJohnson Có ví dụ về mô hình CRUD trong liên kết đó không? Tôi không thấy nó.
Alan Storm

Tôi đã nói rằng có một mô-đun đang chờ để được hợp nhất nhưng tôi không biết chi tiết chính xác. Đó là PR # 2 trên GitHub nội bộ.
Steve Johnson

2

Cách của tôi làm theo các bước theo các bước
1- Đăng ký một mô-đun (register.php và module.xml)
2- Tạo tệp cấu hình hệ thống (system.xml)
3- Tạo tệp cấu hình (config.xml)
4- Tạo danh sách điều khiển truy cập ( acl.xml)
5- Tạo tập lệnh cài đặt (InstallSchema.php)
6- Quản lý tính bền vững của thực thể (mô hình, tài nguyên, bộ sưu tập)
7- Xây dựng giao diện lối vào
8- Xây dựng giao diện phụ trợ

Từ bước 5 tôi nghĩ rằng nó sẽ nhận được nhiều thời gian ở đó. Ví dụ bạn có thể thấy trong các mẫu từ magento lõi. Nó phụ thuộc vào những gì bạn cần lưu trữ
Bàn phẳng đơn giản? Xem trong mô-đun như cms. Mô-đun này là rõ ràng nhất để hiểu
bảng EAV? Xem trong danh mục mô-đun, khách hàng, bán hàng, thuế ..


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.