Joomla.it Forum
Non solo Joomla... => Sviluppo => : mpigio 10 Jun 2010, 16:24:57
-
Se volessi mostrare in una view un elenco di valori provenienti da un altro modello MVC si deve passare per forza per un helper? Qual'è la soluzione migliore x la logica MVC?
Mi spiego meglio, supponiamo di avere una lista di cantautori e una lista di brani e volessi assegnare ad ogni brano il proprio autore, nella view del brano avrei bisogno di una select per mostrare tutti i cantautori. Come carico questi valori? Da un metodo di un helper o dal model dei cantautori? O che altro?
Grazie!
-
mi sa ora scrivo na fesseria..
se ti connetti ad un altro database mysql e un database mysql è sempre un database mysql
quindi una volta che hai l'accesso lo tratti come se fosse un database mysql di un altro sito con joomla
l'ho detta?
:)
-
Non mi sono spiegato bene, sono su un unico DB MySql, ed ho 2 tabelle gestite da un mio componente e vorrei mostrare i dati della tabella 1 quando son in una view della tabella 2
Grazie!
-
secondo me puoi farla nell'helper,... ma scusa non facevi prima a farlo che chiederlo?
...o se l'hai fatto ... funziona?
M.
-
Ma scusa questa non è una comunità in cui ci si aiuta?
L'ho già fatto e funziona, quello che chiedevo era se la strada che ho seguito è corretta x il modello MVC.
Se ho peccato di eccesso di precisione scusate per il tempo che vi ho fatto perdere.
-
sorry , non avevo capito che volevi approvazione... sì, diciamo che se non ci sono stranezze è la strada che avrei scelto anch'io.
M.
-
ciao,
dipende da che hai fatto, ma detto così sembra la strada sbagliata. l'helper è destinato a contenere classi di uso comune all'estensione, non strutture di dati. il luogo giusto per quest'ultimo è il model.
pertanto il nome dell'autore associato al brano lo recuperi nel model dei brani con una JOIN tra le due tabelle; se serve nella view l'elenco degli autori, per ad esempio una ricerca, istanzi, nella view o nel controller, il model degli autori e richiami l'opportuno metodo (se questo passaggio è ad uso ripetuto allora puoi metterlo nell'helper, ma sempre istanziando il model).
ciao,
marco
-
ummhh, ..scusa Marco ma nn ho capito... (o te o lui :) )
.. perchè mi parli di strutture dati? in fondo potrebbe semplicemente contenere i metodi comuni, quindi i due metodi per recuperare gli array restituiti dalle query che verrebbero usati nei 2 model lasciando al controller solo la chiamata al modulo desiderato.
Ero tentato anch'io di suggerirgli la join, vista la semplicità del problema, avevo paura che poi lo usasse come "modalità" anche per altre query un po' più onerose.
Cmq nn è ne una polemica e nemmeno sostengo tesi :), a volte pecco un po' nella logica, non faccio fatica ad ammetterlo, quindi mi piacerebbe capire
M.
-
ciao maurizio,
la risposta era abbastanza generica perché non era chiarissima, almeno per me, né la domanda né la spiegazione di come era stato fatto quanto descritto.
ora è pacifico che i dati (e la loro struttura in un MVC) stanno nel model, ma non si deve assumere l'uguaglianza model=table (tipicamente è model=DBView) pertanto la procedura corretta per recuperate brano ed autore e la JOIN tra le due tabelle.
la procedura corretta per recuperare la lista degli autori è istanziare il model relativo e richiamare il metodo opportuno (getData() nelle convenzioni Joomla!).
ove mettere questa operazione è altro discorso. se viene usata solo una volta è inutile, e, imho tecnicamente scorretto, aggiungere l'overhead della definizione/caricamento/istanziazione di una nuova classe nell'helper. forse meglio inserirla direttamente nel model dei brani. discorso opposto se viene richiamata da più parti del codice che non sono tra loro in relazione.
comunque citando la copertina del manuale perl "There's More Than One Way To Do It" ;D ;D
ciao,
marco