Ciao a tutti,
Sto muovendo i primi passi con Yii.
Volevo qualche indicazione su come poter utilizzare le relazioni tra tabelle nelle viste:
Faccio un esempio, ho una tabella libri (id_libro, titolo, id_autore) ed una tabella autori (id_autore, cognome, nome)
Nel modello Libri inserisco:
public function relations()
{
return array(
'idAutore' => array(self::BELONGS_TO, 'Autori', 'id_autore'),
);
}
A questo punto voglio modificare la vista index di Libri, per visualizzare Autore: Cognome + spazio + Nome ed inserisco:
<b><?php echo CHtml::encode(‘Autore’); ?>:</b>
<?php echo CHtml::encode($data->idAutore->cognome).’ '.CHtml::encode($data->idAutore->nome); ?>
<br />
Modifico anche la vista singola ed inserisco:
$cognome_nome = $model->idAutore->cognome.’ '.$model->idAutore->nome; /Non c’è un modo più elegante?/
$this->widget(‘zii.widgets.CDetailView’, array(
'data'=>$model,
'attributes'=>array(
'id_libro',
array('label'=>'Autore', 'value'=>$cognome_nome),
'titolo',
),
));
E fin qui ci siamo…
Quando voglio creare un nuovo libri, voglio che l’autore sia all’interno di una select, aggiungo quindi in _form.php:
<?php echo $form->dropDownList($model,‘id_autore’,CHtml::listData(Autori::model()->findAll(),‘id_autore’,‘cognome’) , array(‘prompt’=>‘Scegliere un autore’)); ?>
Che ovviamente mi visualizza solo il cognome, mentre io vorrei che mi visualizzasse cognome + spazio + nome
Suggerimenti?
Grazie in anticipo
Max