- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试学习 Yii,并查看了 Yii 文档,但仍然没有真正理解它。我仍然不知道如何在 Controller 和 View 上使用 CDataProvider 来显示 View 上可用的所有博客文章。任何人都可以根据以下内容提出建议或举个例子:
我的 PostController 中的 actionIndex:
public function actionIndex()
{
$posts = Post::model()->findAll();
$this->render('index', array('posts' => $posts));
));
View ,Index.php:
<div>
<?php foreach ($post as $post): ?>
<h2><?php echo $post['title']; ?></h2>
<?php echo CHtml::decode($post['content']); ?>
<?php endforeach; ?>
</div>
除了执行上述操作,任何人都可以建议如何使用 CDataProvider 来生成吗?
非常感谢。
最佳答案
我能建议的最好的方法是使用 CListView在你看来,还有一个CActiveDataProvider在你的 Controller 中。所以你的代码变得有点像这样:
Controller :
public function actionIndex()
{
$dataProvider = new CActiveDataProvider('Post');
$this->render('index', array('dataProvider' => $dataProvider));
}
index.php:
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_post', // refers to the partial view named '_post'
// 'enablePagination'=>true
)
);
?>
_post.php:此文件将显示每个帖子,并作为小部件 CListView 的属性传递(即 'itemView'=>'_post '
) 在你的 index.php View 中。
<div class="post_title">
<?php
// echo CHtml::encode($data->getAttributeLabel('title'));
echo CHtml::encode($data->title);
?>
</div>
<br/><hr/>
<div class="post_content">
<?php
// echo CHtml::encode($data->getAttributeLabel('content'));
echo CHtml::encode($data->content);
?>
</div>
基本上,在 Controller 的索引操作中,我们创建了一个新的 CActiveDataProvider,它提供 Post 模型的数据供我们使用,我们将此数据提供程序传递给索引 View 。
在索引 View 中,我们使用 Zii 小部件 CListView,它使用我们作为数据传递的 dataProvider 来生成列表。每个数据项都将按照我们作为属性传递给小部件的 itemView 文件中的编码进行呈现。此 itemView 文件将有权访问 $data 变量中的 Post 模型的对象。
推荐阅读:使用 Yii 1.1 和 PHP 5 进行敏捷 Web 应用程序开发
一本非常适合Yii初学者的书,列在Yii主页上。
索引.php
<?php
$dataArray = $dataProvider->getData();
foreach ($dataArray as $data){
echo CHtml::encode($data->title);
echo CHtml::encode($data->content);
}
?>
关于php - 如何转换为在 View 中使用 Yii CDataProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227700/
我的模型中有一个自定义数据提供者 我在 Controller 中试过了 public function actionMonthTotal() { $model=new Rapporti();
我正在尝试学习 Yii,并查看了 Yii 文档,但仍然没有真正理解它。我仍然不知道如何在 Controller 和 View 上使用 CDataProvider 来显示 View 上可用的所有博客文章
我是一名优秀的程序员,十分优秀!