2012-09-23 10 views
24

Per il nostro nuovo progetto, abbiamo iniziato a utilizzare Zend Framework 2 e Dojo 1.8. ZF2 ha un modulo modulo completamente riscritto, che ora presenta il nuovo CollectionElement per le relazioni uno-a-molti. Per quanto riguarda l'interfaccia utente, trovo che dgrid si adatti meglio a tali relazioni (utilizzando il plug-in dell'editor della colonna), così ho iniziato ad estendere gli helper di visualizzazione FormCollection, FormRow e FormElement, in modo che possano eseguire il dgrid desiderato. Tutto andava bene fino a quando non mi sono reso conto che non posso impostare i nomi di input per riga per i widget dgrid.Utilizzo di dgrid nelle raccolte di moduli in un'applicazione Zend Framework 2

Ho iniziato con lo ZF2 documentation rearding form collections. Si può vedere, che gli elementi di input raccolta hanno nomi di matrice simile come

order[products][0][name] 
order[products][0][price] 
order[products][1][name] 
order[products][1][price] 

D'altra parte, la configurazione di dgrid si riferiscono colonna, quindi può avere una definizione di colonna come

editor({ 
    field: "_dojo_textbox_505ee3a390d705_26717315", 
    label: "Name", 
    editorArgs: { 
     name: "order[products][{index}][name]", 
    } 
}, TextBox) 

Questa definizione colonna definirà lo stesso nome del widget per tutte le righe, che non funziona con il requisito del formato dei dati della raccolta ZF2.

Quello che ho anche provato è la denominazione della colonna in questo modo:

order[products][] 

che funziona, ma non consente il formato desiderato

order[products][][name] 

Forse c'è un modo per inviare i dati come questo :

order[products][name][] 

e convertirlo in seguito, ma la soluzione non sembra corretta. Accanto a questo sto cercando di produrre codice riutilizzabile e voglio evitare modifiche ai dati in forma.

Dal momento che sto cercando molto difficile da evitare evento onSubmit/onClick gestione per la conversione dei dati, ci sono 2 possibili soluzioni: 1. Fare dgrid in grado di impostare per ogni fila di nomi di widget 2. Fare forma ZF2 capire alcuni altri- formato standard POST per collezioni

Purtroppo ho finito le idee, come una di queste soluzioni può essere fatta, quindi sarò molto grato, se mi puoi dare una mano con questo!

Poiché questo è in qualche modo correlato con la mia domanda corrente, lo metto qui come una domanda a lato: Quale altra soluzione UI usi per le tue interfacce formali one-to-many con dojo?

risposta

1

In Zend Framework versione 2, "Zend \ Form" ha la capacità di aggiungere nuovi elementi all'elemento "Collection" in modo dinamico.

È possibile verificarlo here

Problemi correlati