Purtroppo il codice è corretto. C’è da dire una cosa … ho aggiunto
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$.fn.yiiGridView.update('iscrizioni-grid', {
data: $(this).serialize()
});
return false;
});
jQuery('#iscrizioni-grid a.delete').live('click',function() {
if(!confirm('Are you sure you want to delete this item?')) return false;
$.fn.yiiGridView.update('iscrizioni-grid', {
type:'POST',
url:$(this).attr('href'),
success:function() {
$.fn.yiiGridView.update('iscrizioni-grid');
}
});
return false;
});
jQuery('#iscrizioni-grid').yiiGridView({'ajaxUpdate':['iscrizioni-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'items','selectableRows':1});
});
/*]]>*/
</script>
L’unico intervento che ho fatto nel codice è il seguente:
/**
* @return array relational rules.
*/
public function relations () {
return array(
'nome_evento'=>array(self::BELONGS_TO, 'Events', 'id_evento'),
);
}
e dunque in diversi posti ho usato questo nuovo campo:
Nella view:
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'nome_evento.description',
'ragionesociale',
'provincia',
'riferimento',
'telefono',
'fax',
'email',
),
)); ?>
Nella _view:
<b><?php echo CHtml::encode($data->getAttributeLabel('nome_evento.description')); ?>:</b>
<?php echo CHtml::encode($data->nome_evento->description); ?>
<br />
Nell’update:
<?php
$this->breadcrumbs=array(
'Iscrizioni'=>array('index'),
substr($model->nome_evento->description, 0,10).' ...'=>array('view','id'=>$model->id),
'Update',
);
?>
Dovrebbe essere l’unica cosa diversa dal normale codice generato da Yii. Io ho aggiunto questo campo manualmente. C’era forse un modo diverso di aggiungere un riferimento ad una chiave esterna? Possibile che sia quello che, in un modo o nell’altro, “infastidisca” il normale codice di Yii?