Beispiel für Code und Konfiguration für ein einfaches Magento 2 CRUD-Modell?

8

Wie kann ich als Endbenutzer-Programmierer ein neues "CRUD" -Modell in Magento 2 erstellen? Das heißt, ich möchte die PHP-Klassendateien und XML-Konfigurationsdateien erstellen, die dies tun

  1. Lassen Sie mich Daten aus einer Datenbanktabelle erstellen, lesen, aktualisieren und löschen
  2. Lassen Sie mich die ersten Datenbanktabellen erstellen, in denen diese Informationen gespeichert werden.

In Magento 1 wurde dies von einem Modell, einem Ressourcenmodell, einem Setup-Ressourcenmodell und verschiedenen Knoten in behandelt config.xml. Es ist nicht 100% klar, wie dies in Magento 2 gehandhabt wird.

Gibt es dafür noch ein Beispielmodul oder ein klares Tutorial? Oder ist die Rückwärtsarbeit von einem vorhandenen Kernmodell (wie der CMS-Seite) unsere einzige Option?

Alan Storm
quelle

Antworten:

4

Habe diesen alleine aufgespürt.

Erstens benötigt Magento 2 kein zusätzliches XML zum Erstellen eines CRUD-Modells. Magento 2 weiß automatisch, wie das erforderliche Ressourcenmodell und die erforderlichen Sammlungsobjekte basierend auf einer Namenskonvention erstellt werden.

Magento 2 tut ein erfordern

  • Modellklasse
  • Ressourcenmodellklasse
  • Sammlungsmodellklasse
  • Eine Schema-Installationsklasse

Die Einzelheiten dieser Fragen gehen über den Rahmen einer einzelnen Stack Exchange-Antwort hinaus, das CMS-Seitenmodell bietet jedoch ein einfaches Beispiel für jede Klasse.

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

Außerdem hat mein Magento 2-Code-Generierungs-Tool-Stößel jetzt den Befehl generate_crud_model .

Alan Storm
quelle
3

Um erste Datenbanktabellen zu erstellen, müssen Sie eine InstallSchema.php-Datei im Setup-Ordner Ihrer Erweiterung erstellen. Dies muss das InstallSchemaInterface implementieren.

Haben Sie diese Erweiterung ausgecheckt : https://github.com/tzyganu/Magento2SampleModule ? Es hat mir geholfen, viel über Magento 2 CRUD zu verstehen. Ich denke, es ist kompatibel mit Magento 2.0.0, aber ich bin nicht sicher. Dort finden Sie auch ein Beispiel für das InstallSchema.

Silvan
quelle
Magento hat kürzlich unsere eigenen Beispielmodule aktualisiert , die Sie auch überprüfen können.
Steve Johnson
@SteveJohnson Gibt es in diesem Link ein CRUD-Modellbeispiel? Ich sehe es nicht
Alan Storm
Mir wurde gesagt, dass es ein Modul gibt, das darauf wartet, zusammengeführt zu werden, aber ich kenne die genauen Details nicht. Es ist PR # 2 auf dem internen GitHub.
Steve Johnson
2

Ich folge Schritt für Schritt
1- Registrieren eines Moduls (register.php und module.xml)
2- Erstellen einer Systemkonfigurationsdatei (system.xml)
3- Erstellen einer Konfigurationsdatei (config.xml)
4- Erstellen von Zugriffssteuerungslisten ( acl.xml)
5- Erstellen eines Installationsskripts (InstallSchema.php)
6- Verwalten der Persistenz von Entitäten (Modell, Ressource, Sammlung)
7- Erstellen einer Frontend-Schnittstelle
8- Erstellen einer Backend-Schnittstelle

Ab Schritt 5 denke ich, dass es dort ziemlich viel Zeit gibt. Beispiel sehen Sie in Beispielen von Core Magento. Es kommt darauf an, was Sie archivieren müssen
Einfacher flacher Tisch? Siehe im Modul wie cms. Dieses Modul ist am klarsten, um
EAV-Tabellen zu verstehen ? Siehe im Modul Katalog, Kunde, Umsatz, Steuern ..

mrtuvn
quelle
2

Für Magento 2. verwende ich unten CRUD Generator

https://mage2gen.com/

Ankit Shah
quelle