Due Model Con Una View

ciao a tutti.

ho letto molto su questo argomento, mi sembrava di aver capito che se nel mio controller (actionUpdate) metto:




	$this->render('update',array(

			'model' => $model,

			'modelInternicode' => new Internicode,

		));



poi nella _form posso usare entrambi i model: $model e $modelInternicode:




<div class="row">

		<?php echo $form->labelEx(modelInternicode,'Specifica un nuovo Elenco interni'); ?>

		<?php $data=CHtml::listData(Dispoutenti::model()->findAll(),'exten','nome');

		    $this->widget('ext.select2.ESelect2',array(

  			'model' => modelInternicode,

  			'attribute' => 'interno',

  			'data' => $data,

  			'options'=>array(

                               'placeholder'=>'Seleziona interni',

                               'width' => '200px;',

                        ),

    		        'htmlOptions'=>array(

    				'multiple'=>'multiple',

  			),

		    )); ?>


		<?php echo $form->error(modelInternicode,'interno'); ?>

	</div>



invece ottengo un errore:

Use of undefined constant modelInternicode - assumed ‘modelInternicode’

Perchè?

Grazie

perché hai scritto modelInternicode senza il simbolo della variabile ;)

si ti ringrazio tanto,

ma se aggiungo $ cioè: $modelInternicode

ho quest’altro errore:

Undefined variable: modelInternicode

Prego

per quanto riguarda il secondo problema, tu dalla view che richiama _form (_create, ad esempio) devi passargli tutte e due le variabili:




<?php echo $this->renderPartial('_form', array('model'=>$model,'modelInternicode' => $modelInternicode)); ?>

chiarissimo, grazie!!

ne approfitto per chiederti, se posso un’altra cosa.

sempre nel caso di sopra, nel controller come recupero i dati?

Cioè dovei usare $_POST[‘Internicode’] ma questo cosa è? io mi aspetterei un array bidimensionale ma non mi è chiaro

Grazie ancora

Quando dal controller devi caricare quello che ti arriva dal form,

la via più sicura è questa:




$modelInterniCode->attributes = $_POST['InterniCode'];



E Yii automaticamente ti carica i dati.

Post['InterniCode] è un array, del tipo Post['InterniCode][attributo1]…Post['InterniCode][attributon]

quello che mi confonde è che la select può avere valori multipli, dunque:

Post[‘Internicode’][‘interno’] dovrebbe essere ancora un array ma non ho capito come ci accedo.

uno degli attributi non è passato dal form per cui non posso usare:




$modelInterniCode->attributes = $_POST['InterniCode'];



La tua select multipla sarà sempre un array dentro un array, mentre per quanto riguarda l’attributo non passato dal form, bè Yii passa al model solo quello che gli passi tramite post, gli altri che non hai passato rimangono come erano prima che tu gli dicessi di caricare quanto arrivato via _POST