Yii Framework Forum: [Risolto]Controller Che Non Passa Un Secondo Model Alla View! - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Risolto]Controller Che Non Passa Un Secondo Model Alla View! Rate Topic: -----

#1 User is offline   paskuale 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 395
  • Joined: 30-December 11
  • Location:Italy, Bari

Posted 14 December 2012 - 03:51 AM

Salve stò letteralmente impazzendo da 2gg, non riesco a capire perchè il Controller non voglia saperne di passare (nel render()) un secondo model, dichiarato col classico new.

Nel controller ho :

$model2 = new ProgettoDimiScritta;


... lo passo alla view create.php

$this->render('create', array(
            'model' => $model,
            'model2' => $model2,
            'paziente_id' => $paziente_id,
            'etichettaDataPresaInCarico' => $etichettaDataPresaInCarico,
            'is_ripresa_in_carico' =>$is_ripresa_in_carico,
            'faseRiab_precedente' =>@$faseRiab_precedente,
            'campiVisibili'=>$campiVisibili
        ));


nulla .... mi ritorna una exception "unable ..." se però dichiaro dentro la view create così:

$model2 = new ProgettoDimiScritta;
(dentro create.php)

tutto fila, ma è assurdo (chiaramente non posso gestire il model dal controller)!!!

Da cosa sono impossessato ?!?!?! Cosa ha questo model di diverso dagli altri :( ?!
0

#2 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 336
  • Joined: 10-April 12

Posted 14 December 2012 - 04:36 AM

postaci l'errore magari.

prova a fare così:
$this->render('create', array(
            'model' => $model,
            'model2' => new ProgettoDimiScritta(),
            'paziente_id' => $paziente_id,
            'etichettaDataPresaInCarico' => $etichettaDataPresaInCarico,
            'is_ripresa_in_carico' =>$is_ripresa_in_carico,
            'faseRiab_precedente' =>@$faseRiab_precedente,
            'campiVisibili'=>$campiVisibili
));


per vedere se c'è qualcosa che invalida il model2 nell'azione prima del render.
0

#3 User is offline   paskuale 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 395
  • Joined: 30-December 11
  • Location:Italy, Bari

Posted 14 December 2012 - 04:43 AM

View Postst4nny, on 14 December 2012 - 04:36 AM, said:

postaci l'errore magari.

prova a fare così:
...
            'model2' => new ProgettoDimiScritta(),
            ....



non dovrebbe essere senza parentesi () ? Posto l'errore, grazie ;)
0

#4 User is offline   paskuale 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 395
  • Joined: 30-December 11
  • Location:Italy, Bari

Posted 14 December 2012 - 04:52 AM

Ok se seguo l'esempio di @st4nny vien passato il $model2 ma resta il problema che dovrei 'trattarlo' dall'interno del controller, dovrei leggere gli attributes di quel model e salvarli (->save(true);)


Ho anche provato a dichiararla nel controller
$model2 = new ProgettoDimissioneScritta;

(rimuovendo il codice che salva)e funziona, quindi sembra che il problema nasca dal
$model2->save();
continuo a testare ...

grazie
0

#5 User is offline   paskuale 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 395
  • Joined: 30-December 11
  • Location:Italy, Bari

Posted 14 December 2012 - 04:58 AM

Posto la soluzione anche se una soluzione non sembrerebbe, alla fine non ho fatto nulla di diverso da prima, se non chiamare il model in maniera diversa .... prima lo chiamavo $modelDimiScritta ora l'ho chiamato $model2 e funzia !!!! :blink: boh ....

Che la scrittura a cammello non piaccia ai models ?! :lol:
grazie a tutti !! ;)
0

#6 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 14 December 2012 - 07:41 PM

View Postpaskuale, on 14 December 2012 - 04:43 AM, said:

non dovrebbe essere senza parentesi () ? Posto l'errore, grazie ;)


Per istanziare una class in PHP si può fare sia in questo modo:
$obj = new ClassName;

che in questo modo:
$obj = new ClassName();


Io sono un amante delle parentesi: di fatto quando instanzi una classe, richiami un metodo costruttore. I metodi in PHP si chiamano con le parentesi. A me viene più semplice pensare all'instanziazione di una classe con le parentesi. Io sono anche quello che mette le parentesi graffe negli if o nei for che hanno una sola riga di codice. Ma non ne parlo perché qui andiamo fuori tema.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users