我对 CArrayDataProvider 明显返回空值有疑问。 当我输入 SQL(见下文)时,在 mysql 上,我得到 7 条记录,我的 View 显示 7 行,但值为空。
这是必要的代码,如果您需要更多,请询问我。
后置 Controller 的actionIndex
$connection=Yii::app()->db;
$user_id = Yii::app()->user->id;
$sql = 'SELECT * FROM post
LEFT JOIN comment ON post.id = comment.post_id
AND comment.user_id =:user_id
LIMIT 0 , 30 ';
$command=$connection->createCommand($sql);
$command->bindParam(':user_id', $user_id,PDO::PARAM_STR);
$rawData = $command->queryAll();
$dataProvider=new CArrayDataProvider($rawData, array(
'id'=>'post',
'sort'=>array(
'defaultOrder' => 'post.created',
),
'pagination'=>array(
'pageSize'=>10,
),
));
$this->render('index',array(
'dataProvider'=>$dataProvider,
'category_id'=>$category_id,
));
}
查看索引
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>
并查看_view
<?php echo CHtml::encode(Post::model()->subject); ?>
有人能看出问题出在哪里吗?
预先感谢您的帮助。
最佳答案
在您的_view.php中使用它,而不是您正在做的任何事情:
<?= CHtml::encode($data['subject']); ?>
如果仍然失败,请检查$dataProvider
是否确实有记录:
<?php var_dump($dataProvider->data); ?>
关于php - CArrayDataProvider 显示空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153527/