Bonjour,
Je dois afficher une liste de résultats issue d’une requete sql complexe (environ 80 lignes et plusieurs tables sans clés étrangères)
Pour cela j’ai construit mon MVC dans un nouveau module en utilisant CSqlDataProvider.
Je n’arrive pas à le faire fonctionner.
Ci-dessous le détail(j’ai simplifié la réquete sql) :
controllers/DefaultController.php
<?php
class DefaultController extends Controller
{
public function actionIndex()
{
$dataProvider=new CArrayDataProvider('ListDemandes');
$this->render('index',array(
'dataProvider'=>ListDemandes::model()->getListAllDemandes(),
));
}
}
?>
models/ListDemandes.php
<?php
class ListDemandes extends CActiveRecord{
/**
* Returns the static model of the specified AR class.
* @param string $className active record class name.
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function getListAllDemandes() {
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM demande_ou_projet dem')->queryScalar();
$sql='
SELECT iddemande,Libelle
FROM demande_ou_projet dem
';
$dataProvider=new CSqlDataProvider($sql, array(
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array(
'iddemande', 'libelle',
),
),
'pagination'=>array(
'pageSize'=>20,
),
));
return $dataProvider->getData();
}
}
?>
views/index.php
<?php
/* @var $this DefaultController */
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'header'=>'ID',
'name' => 'id',
'type'=>'raw',
'value' => '$data["iddemande"]',
),
array(
'header'=>'libelle',
'name' => 'id',
'type'=>'raw',
'value' => '$data["libelle"]',
),
),
));
?>
Je vous remercie d’avance pour votre aide car je tourne un peu en rond.