`

yii视图使用的widget方式总结

    博客分类:
  • PHP
 
阅读更多

yii视图中使用的widget方式总结:
常用的有3种方式:
一、显示详细信息:

$this->widget('zii.widgets.CDetailView', array(
    'data' => $model,
    'attributes' => array(
        'id',
        'title',
        'content',
    ),
);
 
二、显示列表,可以进行条件限制和分页:
控制器:
$dataProvider = new CActiveDataProvider('Post', array(
    'criteria' => array(
            'condition' => 'project_id = :project_id',
            'params' => array(':project_id' => $pid),
        ),
    'pagination' => array(
        'pageSize' => '5',
    ),
));
 
视图:
    $this->widget('zii.widgets.CListView',array(
        'dataProvider' => $dataProvider, //数据源
        'itemView' => '_view', //渲染子视图,传给模板的值用$data接收。
        ),
    );

子视图:

    getAttributeLabel('id')); ?>://$data接收来自父视图的数据,使用getAttributeLabel()获取模型中设置的标签
    id), array('view', 'id'=>$data->id)); ?>//使用$data->attribute获取值。
    

三、显示列表,但是结果会在表格中显示

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider, //数据源
    'columns'=>array(
        'title',          // display the 'title' attribute
        'category.name',  // display the 'name' attribute of the 'category' relation //显示与category相关的name
        'content:html',   // display the 'content' attribute as purified HTML 显示净化过的HTML格式
        array(            // display 'create_time' using an expression
            'name'=>'create_time',
            'value'=>'date("M j, Y", $data->create_time)',
        ),
        array(            // display 'author.username' using an expression
            'name'=>'authorName',
            'value'=>'$data->author->username',
        ),
        array(            // display a column with "view", "update" and "delete" buttons
            'class'=>'CButtonColumn',
        ),
    ),
    'filter'=>$model,//对用户的输入进行过滤
));
 

Yii中loadModel的使用:$this->loadModel($modelId);
一般在R/U/D操作中,会loadModel($modelId),这是因为此时,读,更新和删除时,已经通过GET方式获取到了model的id值,只需要将对应id的model加载进来,就可以了。
但是在C(建立),不需要loadModel,而是需要新建一个初始化的model。
使用$_POST['Model']的值分别填充model的attribute后,就可以save()了。

Yii中不同控制器使用同一个模板:
在Yii的CRUD操作中,C和U使用的是同一个子视图。区别在于:
C操作中,所有的input的值都是空,新建的model也是初始化状态,并准备接收来自POST的值。
在U操作中,所有input的值需要通过loadModel($id)的方式填充,然后准备接收来自POST的更新的值(有的
值并没有被用户修改);
然后,根据$model->isNewRecord()来判断提交按钮显示C还是U操作。
最后使用$model->save();将记录存储。

Yii中渲染视图的方式:
使用$this->render()和$this->renderPartial()渲染视图;
前者一般渲染一个整体视图,在整体视图中可能会用后者渲染需要重复渲染的部分。
例如在indexAction中一般会显示记录列表,由于所有记录的渲染方式一致,此时会使用子
视图来分别渲染相同的部分。而index视图只是渲染一个大的结果,比如导航面包碎屑,记录的条数和
分页等。

From:http://zhouyujiao163.blog.163.com/blog/static/48363054201161464156603/

分享到:
评论

相关推荐

    yii 自定义widget地址联动

    自定义Widget是扩展Yii功能和提高代码复用性的重要方式。本文将深入探讨如何在Yii框架中实现自定义Widget以及实现地址联动的功能。 一、Yii Widget基础 在Yii中,Widget是基于MVC(模型-视图-控制器)设计模式的,...

    yii-ke-widget

    在Yii项目中使用 "yii-ke-widget",开发者只需要按照readme.txt中的指示进行安装,然后在需要使用富文本编辑器的地方调用LEditor Widget。这样不仅可以减少重复编码,还能保持代码的整洁,提高开发效率。同时,由于...

    Yii 自定义Widget Portlet

    Yii 框架是一款高效的PHP开发框架,它提供了一种优雅的方式来组织和构建Web应用程序。在Yii中,Widget是可重用的代码组件,能够帮助开发者快速构建UI(用户界面)。Portlet是Yii中一种特殊的Widget,常用于展示可...

    Yii视图操作之自定义分页实现方法

    本文实例讲述了Yii视图操作之自定义分页实现方法。分享给大家供大家参考,具体如下: 1. 视图文件调用cgridview,clistview时候调用自定义的分页方法 <?php $this->widget('zii.widgets.grid.CGridView', array( ...

    yii2-widget-摩纳哥

    3. **使用**:在视图文件中,你可以像使用其他Yii2 Widget一样使用"yii2-widget-monaco"。设置编辑器的ID、初始内容、语言等属性。例如: ```php use frontend\widgets\MonacoEditor; echo MonacoEditor::widget...

    yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析

    使用Yii-Widget-Select2扩展时,开发者需要在视图文件中通过特定的方式引用。具体的引用方法是使用use关键字引入Select2类:`use kartik\select2\Select2;`。然后,在视图层的表单字段中应用Select2组件。组件的配置...

    yii2-igrowl-widget:一个基于 iGrowl jQuery 插件的 Yii2 igrowl 小部件

    "uran1980/yii2-igrowl-widget": "dev-master" 到composer.json的 require 部分 用法 要激活此小部件,将此行添加到您的视图或布局: <?php echo uran1980\yii\widgets\igrowl\ Igrowl :: widget (); ?>

    yii中widget的用法

    本文实例讲述了yii中widget的用法。分享给大家供大家参考。具体分析如下: WIDGET定义很简单,如果你在/protected/widget/test/下建立了一个名为“testWidget.php”的widget。 在视图中调用需要这样写: 复制代码 ...

    yii2-master

    10. **Widget组件**:Yii2的Widget组件机制允许开发者复用和组合UI元素,如GridView用于数据展示, ActiveForm用于处理表单,Pjax用于局部刷新等。 11. **模板引擎**:Yii2使用Twig或其内置的PHP模板引擎,提供干净...

    yii2-date-time-picker-widget:用于Yii2的Bootstrap DateTimePicker窗口小部件

    用于Yii2的Bootstrap DateTimePicker窗口小部件 呈现。安装安装此扩展的首选方法是通过 。 无论运行composer require 2amigos/yii2-date-time-picker... 有两种使用方式,一种是ActiveForm实例,另一种是使用小部件来设

    yii2 百度编辑器

    3. 使用Widget:在视图文件中,使用Yii2的Widget机制来调用百度编辑器。例如: ```php use dosamigos\ueditor\UEditor; <?= UEditor::widget([ 'name' => 'content', // 输入框ID 'options' => ['rows' => 10...

    yii1.1版本资料整理

    6. 支持插件widget(portlet):Yii通过widget插件系统允许开发者方便地添加和维护应用程序中的部件,从而实现丰富的用户界面。 二、Yii1.1核心组件与功能: 1. CRUD生成器Gii:Gii是一个强大的工具,提供了代码生成...

    Yii中创建自己的Widget实例

    `的方式引入已经存在的Yii内置Widget或者用户自定义的Widget。这里`WidgetName`是内置Widget的名称或者用户自定义Widget的类名。还可以通过数组方式传递参数到Widget类,例如`$this->widget('WidgetName', array('...

    Widget 应用实例

    5. **布局与视图**:展示了如何设计Widget的UI,使用RemoteViews来操作Widget的视图元素。 6. **用户交互**:讲解了如何处理Widget上的按钮点击和其他交互,通过PendingIntent将用户操作传递回应用程序。 7. **...

    Yii框架PDF中文文档

    ### Yii框架知识点总结 #### 一、概述与新特性 **Yii** 是一款高性能的PHP Web应用程序开发框架,以其简洁高效著称。该框架旨在帮助开发者快速构建安全且高效的Web应用。本文档根据官方中文文档及《Yii权威指南》...

    Yii框架文档(2010.7.18)

    Yii框架的核心特性包括遵循MVC(模型-视图-控制器)设计模式,通过组件化和模块化支持可重用性,以及内置的用户认证和安全功能。Yii提供了丰富的工具和功能,例如通过Gii代码生成器自动生成应用模块、以及使用Active...

    YII快速入门教程

    - **系统视图**: Yii提供的内置视图组件。 **7. 组件** - **定义**: 组件是具有特定功能的类,可以被其他部分的应用程序所复用。 - **类型**: - **组件属性** - **组件事件** - **组件行为** **8. 模块** - ...

    yii2-widgets:扩展Yii2和Bootstrap 4的小部件类

    扩展Yii2和Bootstrap 4的小部件类 视图上所有小部件类的扩展类 包含 ButtonAjax用于制作显示模式的Ajax按钮 LinkAjax用于制作显示模式的Ajax链接 安装 安装此扩展的首选方法是通过 。 无论运行 ...

Global site tag (gtag.js) - Google Analytics