Esempio di codice e configurazione necessari per un modello CRUD Magento 2 semplice?


8

Come posso, un programmatore dell'utente finale, creare un nuovo modello "CRUD" in Magento 2? Cioè, voglio creare i file di classe PHP e i file di configurazione XML che lo faranno

  1. Consentitemi di creare, leggere, aggiornare ed eliminare i dati da una tabella del database
  2. Consentitemi di creare le tabelle del database iniziale che memorizzeranno queste informazioni.

In Magento 1 questo è stato gestito da un modello, un modello di risorsa, un modello di risorsa di installazione e vari nodi in config.xml. Non è chiaro al 100% come questo sia gestito in Magento 2.

C'è ancora un modulo di esempio o un tutorial chiaro là fuori per questo? O lavorare all'indietro da un modello di base esistente (come la pagina CMS) è la nostra unica opzione?

Risposte:


4

Ho rintracciato questo da solo.

Innanzitutto, Magento 2 non richiede XML aggiuntivo per la creazione di un modello CRUD. Magento 2 sa automaticamente come creare il modello di risorsa e gli oggetti di raccolta necessari in base a una convenzione di denominazione.

Magento 2 fa richiede un

  • Classe del modello
  • Classe del modello di risorsa
  • Collezione Modello Classe
  • Una classe di installazione dello schema

Le specifiche di ciascuno di questi vanno oltre lo scopo di una singola risposta di Stack Stack, ma il modello di pagina CMS offre un semplice esempio di ogni classe.

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

Inoltre, il mio pestello dello strumento di generazione del codice Magento 2 ora ha un comando generate_crud_model .


3

Per creare tabelle iniziali del database è necessario creare un file InstallSchema.php nella cartella Setup dell'estensione. Questo deve implementare InstallSchemaInterface.

Hai verificato questa estensione: https://github.com/tzyganu/Magento2SampleModule ? Mi ha aiutato a capire molto su Magento 2 CRUD. Penso che sia compatibile con Magento 2.0.0, ma non ne sono sicuro. Qui puoi anche trovare un esempio di InstallSchema.


Magento ha recentemente aggiornato i nostri moduli di esempio , che puoi anche consultare.
Steve Johnson,

@SteveJohnson Esiste un esempio di modello CRUD in quel link? Non lo vedo
Alan Storm

Mi è stato detto che esiste un modulo in attesa di essere unito, ma non conosco i dettagli esatti. È PR # 2 sul GitHub interno.
Steve Johnson,

2

A modo mio seguire i passaggi da
1 a 1 Registrazione di un modulo (registration.php e module.xml)
2- Creazione di un file di configurazione del sistema (system.xml)
3- Creazione di un file di configurazione (config.xml)
4- Creazione di elenchi di controllo di accesso ( acl.xml)
5- Creazione di uno script di installazione (InstallSchema.php)
6- Gestione della persistenza dell'entità (modello, risorsa, raccolta)
7- Creazione di un'interfaccia frontend
8- Creazione di un'interfaccia backend

Dal passaggio 5 penso che ci sia abbastanza tempo lì. Esempio che puoi vedere negli esempi dal core magento. Dipende da cosa è necessario l'archiviazione
Tavolo piatto semplice? Vedi nel modulo come cms. Questo modulo è più chiaro per capire le
tabelle EAV? Vedi nel catalogo moduli, cliente, vendite, tasse ..


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.