Bonjour,
Tout d’abord merci de ta réponse clem, je commençais à me sentir abandonné ^^.
Dans mon PaysController (le contrôleur qui me permet de savoir dans quel pays a été tourné le film (USA, GB, etc …)
j’ai mon action view comme celle-ci :
[CODE]
public function actionView($id) {
$this->render('view', array(
'model' => $this->loadModel($id, 'Pays'),
));
}[/CODE]
Et dans ma vue (view/pays/view.php)
je voudrais mettre quelque chose comme ceci :
[CODE]
$this->widget(‘zii.widgets.CListView’, array(
'dataProvider'=>$model->films,
'itemView'=>'../films/_view',
)); [/CODE]
Mais j’obtiens une erreur ( Fatal error: Call to a member function getData() on a non-object in /var/www/yii-1.1.8/framework/zii/widgets/CBaseListView.php on line 105 )
ma vue des films (view/films/_view.php)
correspond à ceci :
<div class="view">
<?php echo GxHtml::link('<img src="http://images.allocine.fr/r_160_214/b_1_cfd7e1/'.GxHtml::encode($data->Affiche).'" alt="'.GxHtml::encode($data->titre).'" title="voir '.GxHtml::encode($data->titre).'" hspace="15">'
, array('view', 'id' => $data->idFilms)); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('titre')); ?>:
<?php echo GxHtml::encode($data->titre); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('Titre_original')); ?>:
<?php echo GxHtml::encode($data->Titre_original); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('Acteurs')); ?>:
<?php echo GxHtml::encode($data->Acteurs); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('Realisateurs')); ?>:
<?php echo GxHtml::encode($data->Realisateurs); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('Date_de_sortie')); ?>:
<?php echo GxHtml::encode($data->Date_de_sortie); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('Duree')); ?>:
<?php echo GxHtml::encode($data->Duree); ?>
<br />
</div>
Pourtant il me suffit de coller ce code dans un foreach de ma vue (/view/pays/view.php)
foreach($model->films as $data) {
echo GxHtml::link('<img src="http://images.allocine.fr/r_160_214/b_1_cfd7e1/'.GxHtml::encode($data->Affiche).'" alt="'.GxHtml::encode($data->titre).'" title="voir '.GxHtml::encode($data->titre).'" hspace="15">'
, array('view', 'id' => $data->idFilms)); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('titre')); ?>:
<?php echo GxHtml::encode($data->titre); ?>
<br />
<?php echo GxHtml::encode($data->getAttributeLabel('Titre_original')); ?>:
<?php echo GxHtml::encode($data->Titre_original);
}?>
et sa fonctionne sans problème. Alors ma question est pourquoi est-ce que je n’arrive pas à utilisé :
[CODE]$this->widget(‘zii.widgets.CListView’, array(
'dataProvider'=>$model->films,
'itemView'=>'../films/_view',
));[/CODE] alors que dans foreach il n’y a aucun problème ? Auriez-vous une solution pour m’éviter de copier/coller ?