开发者社区> 问答> 正文

Yii框架中采用自己的写的html,不用框架自带widgets问题

这几天刚开始研究PHP框架Yii,

使用自带的zii.widgets、zii.widgets.grid等组件,

虽然很强大,但是样式设置不够灵活,

<?php $this->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中的数据模型里的字段绑定,

这就不会了,

比如:怎么显示数据在表格、列表、分页等?

展开
收起
落地花开啦 2016-06-16 15:33:40 2554 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    提供给你一个参考例子,试着修改一下

    //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对象实例,用->访问属性即可
    <table class="list">
    <?php foreach($data as $item){ ?>
        <tr>
            <td><?php echo $item->id; ?></td>
            <td><?php echo $item->name; ?></td>
            <td><?php echo $item->age; ?></td>
            <td><?php echo $item->gender; ?></td>
        </tr>
    <?php } ?>
    </table>
    <ul class="page">
    <?php
    //不使用CLinkPager,自己输出分页;需要注意的是CPagination对象的currentPage属性是从0开始计算的
    //这里就简单示例了,没有最小、最大页判断等等,自己研究CPagination对象吧
    for($p = 1; $p <= $pages->pageCount; $p++){
        if ($p == ($pages->currentPage + 1){
             echo "<li class='active'><a href='#'>{$p}</a></li>";
        }else{
             echo "<li class='active'><a href='/mycontroller/index?page={$p}'>{$p}</a></li>";
        }
    }
    ?>
    </ul>
    2019-07-17 19:41:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《零基础HTML入门教程》 立即下载
天猫 HTML5 互动技术实践 立即下载
天猫HTML5互动技术实践 立即下载