m.michele
(M Manzari)
September 2, 2012, 3:08pm
1
Salve ragazzi, ho un problema con il widget CListView ovvero :
inserisco il widget nella view A dandogli come dataProvider un model B e quindi punto la propietà itemView alla _view di B ovvero:
$this->widget('zii.widgets.CListView',array(
'dataProvider'=>new CActiveDataProvider(Clienti::model(),array(
'criteria'=>$criteriacat,
)),
'itemView'=>'../clienti/_view',
));
fin qui tutto bene mi recupera correttamente i valori di B ovvero clienti, il problema sta nel fatto che quando vado a cliccare sul’id mi da errore
Error 404
The requested page does not exist.
e controllando l’url lui scrive http://localhost/nomeprogetto/A/view?id=2 quindi l’errore sta nel fatto che non richiama la view corretta ovvero la B.
Come posso cambiare il link o meglio cosa sbaglio?
sensorario
(Sensorario)
September 3, 2012, 5:24am
2
Non devi cambiare il link, ma il percorso del template. In genere si mette solo il nome del template ‘_view’ e questo viene pescato dalla cartella che ha il nome del controller. Prova con ‘/clienti/_view’. Lo slash iniziale, dovrebbe dire ad Yii che deve partire dalla cartella protected/views e non dalla cartella protected/views/CONTROLLER.
m.michele
(M Manzari)
September 3, 2012, 7:45am
3
ho provato ad inserire sia:
'template'=>'/clienti/view',
che
'template'=>'../clienti/view',
ma m scrive nella pagina /clienti/view nel primo caso e questo ../clienti/view nel secondo caso
sensorario
(Sensorario)
September 3, 2012, 7:57am
4
Due cose: la pagina dovrebbe essere /clienti/_view (con l’underscore ). Secondo, … non capisco che cosa intendi con “mi scrive nella pagina”.
m.michele
(M Manzari)
September 3, 2012, 8:05am
5
allora ti illustro quello che ho scritto:
$this->widget('zii.widgets.CListView',array(
'dataProvider'=>new CActiveDataProvider(Clienti::model(),array(
'criteria'=>$criteriacat,
)),
'itemView'=>'/clienti/_view',
'template'=>'/clienti/_view',
));
visualizza nel browser al posto del div mi visualizza la stringa /clienti/_view
m.michele
(M Manzari)
September 3, 2012, 8:39am
6
ho risolto allora:
$this->widget('zii.widgets.CListView',array(
'dataProvider'=>new CActiveDataProvider(Clienti::model(),array(
'criteria'=>$criteriacat,
)),
'itemView'=>'/clienti/_view',
));
bisogna lavorare sul file /clienti/_view ovvero cambiare questo:
<b><?php echo CHtml::encode($data->getAttributeLabel('id_cliente')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id_cliente), array('view', 'id'=>$data->id_cliente)); ?>
<br />
in
<b><?php echo CHtml::encode($data->getAttributeLabel('id_cliente')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id_cliente), array('/clienti/view', 'id'=>$data->id_cliente)); ?>
<br />
grazie a tutti