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

 Elaine_Fox 发布于 2022-11-23 22:26

这几天刚开始研究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中的数据模型里的字段绑定,

这就不会了,

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

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>
    
    2022-11-23 22:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有