Salve ragazzi, sono nuovo del mondo yii e sto trovando un po di difficoltà nel fare una cosa che senza questo framework faccio agevolmente.
Vi spiego il caso d’uso:
Ho una tabella articolo che ha n campi con 3 chiavi esterne, ora vorrei dare la possibilità tramite una modale (utilizzo bootstrap) di creare una di queste chiavi esterne senza dover uscire dalla pagina con evidente perdita di dati inseriti precedentemente.
Ho approcciato in diversi modi:
- ho provato a fare
$this->renderPartial('/fornitore/_form',array('model'=>$modelFornitore));
ma nel momento in cui clicco sul tasto crea della modale succede di tutto e ricarica la pagina senza inserire nulla anche perchè credo che $this del form a sto punto sia il controller da cui ho richiamato il form.
-
allora ho provato ad “instanziare” un nuovo controller della chiave esterna così da fare render del solo form e non dell’intero create direttamente dal metodo actionCreate ma ho ottenuto un risultato peggiore
-
giungo alla soluzione che a questo punto credo sia la migliore:
$modelFornitore = new Fornitore;
$modelFornitore->isExternal = true;
$this->renderPartial('/fornitore/_form',array('model'=>$modelFornitore));
qui in poche parole setto una variabile del model così da non visualizzare il tasto submit del form che richiamo (quindi modifico nella view)
<?php if(!$model->isExternal){?>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php } ?>
Oltre al fatto che ora dovrei gestire il tutto con ajax (non so da dove iniziare per fare il bind di una funzione sul tasto salva della modale) vorrei sapere se l’approccio finale è quello consigliato o mi sto complicando enormemente la vita.
Grazie per l’eventuale aiuto, e scusate se non sono stato del tutto chiaro!
Notte