Back to top

Autore Topic: Aggiungere modelli ad una view  (Letto 3989 volte)

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Aggiungere modelli ad una view
« il: 09 Mar 2010, 10:39:23 »
Ciao a tutti,
sono appena arrivato e già ho qualche domanda da farvi :D

Sto sviluppando un componente e vorrei aggiungere ulteriori modelli ad una view, come posso fare?

grazie a tutti
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #1 il: 09 Mar 2010, 13:12:29 »
dal controller:
Codice: [Seleziona]
$model = & $this->getModel('modelName');

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #2 il: 09 Mar 2010, 14:41:38 »
ottimo grazie.

ma poi nella view come lo raggiungo?
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #3 il: 10 Mar 2010, 17:57:56 »
ottimo grazie.

ma poi nella view come lo raggiungo?

hai letto sopra?

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #4 il: 10 Mar 2010, 20:18:27 »
scusa, forse il titolo non è esatto.
volevo sapere come aggiungere più di un modello alla view.

volevo avere il model1, model2 ... model2
se li aggiungo nel controller, come faccio ad usarli nella view?

perchè con $this->get('XXX');
lavoro sul model di default, come faccio a prendere la funzione di un determinato model?
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Aggiungere modelli ad una view
« Risposta #5 il: 10 Mar 2010, 22:29:29 »
esttamente come ti ha detto

- nel controller hai metodi a secondo della task

- nel metodo puoi fare una cosa così

function tuatask() {

  $model = $this->getModel('tuomodel');
  $view->setModel($model);
  $view =& $this->getView('folder della view', 'html');
  $view->display();

}

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #6 il: 10 Mar 2010, 22:48:17 »
ok, però così ho aggiunto un model particolare, non quello di default. se voglio avere più modelli a disposizione?
io aggiungo 3 modelli nel controller come mi avete mostrato, poi passo alla view.

io avrò

function display($tpl){
  $data =& $this->get('Data');
 
  ??? come 'prendo' gli altri modelli ???
 
  $this->assignRef('data', $data);
}

se io ho i miei 3 model, tutti quanti con la funzione getData standard, come faccio?

mi sa che mi sono perso qualcosa...
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Aggiungere modelli ad una view
« Risposta #7 il: 11 Mar 2010, 11:34:03 »
come 'prendo' gli altri modelli
--------------------------------

sì, mi sa che stai facendo giri strani

... rimani su 1 model 1 view, altre cose falle solo quando ti è chiaro il "giro" mvc

Di default solitamente ti infili nella view con lo stesso nome del componente, da li dovrai muoverti.
Avrai dei pulsanti... chessò .."inserisci nuovo", che "passerà" per il controller portandosi la task.

La task indicherà il metodo da chiamare e il metodo può o meno usare un model e quindi ciò che tu ci scriverai.
Nella view, quando istanzi la classe del model userai un metodo per recuperare i tuoi "data" che vengono dagli script inseriti nel model.

$data = $model->Tuo_metodo
$this->assignRef('data', $data);
parent::display($tpl);

questo ti rende disponibile l'array "data" nel default della view

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #8 il: 11 Mar 2010, 11:49:13 »
ok, grazie, fin qui il giro mi è chiaro.

il problema che ho io è che voglio mostrare delle informazioni che si trovano su tabelle differenti, per avere una specie di "situazione generale".
per ora ho risolto un modo molto "pratico": nel model istanziato, ho creato altre funzioni che vanno a prendere i dati, copiandole dai vari model originali.
per funzionare funziona, però non è molto corretto dal punto di vista logico.

volevo trovare il modo di ri-utilizzare quello che è già stato scritto.
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Aggiungere modelli ad una view
« Risposta #9 il: 11 Mar 2010, 11:53:49 »
duplicare metodi è abbastanza usuale in joomla.

Potresti provare ad appoggiarti ad un helper

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #10 il: 11 Mar 2010, 12:41:21 »
duplicare metodi è abbastanza usuale in joomla.

ah meno male, mi stavo facendo dei problemi superflui :D

gracias

www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #11 il: 11 Mar 2010, 15:41:58 »
duplicare metodi è abbastanza usuale in joomla.

ah meno male, mi stavo facendo dei problemi superflui :D

gracias

DRY: mai duplicare il codice! E' una delle peggio pratiche  :)

Usa:
Codice: [Seleziona]
$this->addModelPath( JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_miocomponente' . DS . 'models' );
« Ultima modifica: 11 Mar 2010, 15:43:30 da = odino = »

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #12 il: 11 Mar 2010, 15:47:49 »
ah ecco ora mi torna :D

se ho capito bene, il codice che mi hai scritto va nel controller, poi nella view come faccio a "distinguere" fra i due modelli?
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Aggiungere modelli ad una view
« Risposta #13 il: 11 Mar 2010, 16:13:13 »
ah ecco ora mi torna :D

se ho capito bene, il codice che mi hai scritto va nel controller, poi nella view come faccio a "distinguere" fra i due modelli?

Codice: [Seleziona]
$nativeModel = $this->getModel();
$otherComponentModel = $this->addModelPath( JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_miocomponente' . DS . 'models' );

...

 



Web Design Bolzano Kreatif