时间:2021-07-01 10:21:17 帮助过:19人阅读
使用自带的zii.widgets、zii.widgets.grid等组件,
虽然很强大,但是样式设置不够灵活,
widget('zii.widgets.grid.CGridView', array(
'id'=>'content-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'title',
'times',
'content',
'dc_id',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
问一下大家,在yii中如何使用自己写的html代码,
在views中写入html代码,这我会,
而且静态的都可以正常显示,
但是怎么把自己的html代码和models中的数据模型里的字段绑定,
这就不会了,
比如:怎么显示数据在表格、列表、分页等?
这几天刚开始研究PHP框架Yii,
使用自带的zii.widgets、zii.widgets.grid等组件,
虽然很强大,但是样式设置不够灵活,
widget('zii.widgets.grid.CGridView', array(
'id'=>'content-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'title',
'times',
'content',
'dc_id',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
问一下大家,在yii中如何使用自己写的html代码,
在views中写入html代码,这我会,
而且静态的都可以正常显示,
但是怎么把自己的html代码和models中的数据模型里的字段绑定,
这就不会了,
比如:怎么显示数据在表格、列表、分页等?
//in controller
public function actionIndex() {
//初始化model
$mymodel = new Mymodel();
//获取筛选条件
$criteria = $mymodel->search();
//如果不用Criteria,也可以直接写condition语句(findAll要保持一样,但是offset和limit就要自己计算了),例如
//$count = Mymodel::model()->count("uid=:uid", array("uid"=>intval($_GET["uid"])));
//处理分页
$count = Mymodel::model()->count($criteria);
$pages = new CPagination($count);
$pages->pageSize = 20;
$pages->applyLimit($criteria);
//获取数据
$data = Mymodel::model()->findAll($criteria);
$this->render('index', array(
"model" => $mymodel,//下面的片段模板将不使用
"pages" => $pages,
"data" => $data,
));
}
//in template,直接遍历$data,元素是Mymodel对象实例,用->访问属性即可
id; ?>
name; ?>
age; ?>
gender; ?>
输出分页;需要注意的是CPagination对象的currentPage属性是从0开始计算的
//这里就简单示例了,没有最小、最大页判断等等,自己研究CPagination对象吧
for($p = 1; $p <= $pages->pageCount; $p++){
if ($p == ($pages->currentPage + 1){
echo "- {$p}
";
}else{
echo "- {$p}
";
}
}
?>