YII框架行为behaviors用法示例

本文实例讲述了YII框架行为behaviors用法。分享给大家供大家参考,具体如下:

文件 frontend/libs/FilterTest.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/27
 * Time: 14:16
 */
namespace frontend\libs;
use Yii;
use yii\base\Action;
use yii\base\ActionFilter;
class FilterTest extends ActionFilter{
  //在action之前运行,可用来过滤输入
  public function beforeAction($action) {
    echo '在调用action前显示<br/>';
    return TRUE;//如果返回值为false,则action不会运行
  }
  //在action之后运行,可用来过滤输出
  public function afterAction($action, $result) {
    return $result.'在调用action后显示<br/>';//可以对action输出的$result进行过滤,retun的内容会直接显示
  }
}

frontend/controllers/TestbehaviorController.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/27
 * Time: 14:19
 */
 namespace frontend\controllers;
 use yii\web\controller;
class TestbehaviorController extends Controller{
  public function behaviors(){
    return [
      'test'=>[
       'class'=>'frontend\libs\FilterTest',//调用过滤器
      ],
    ];
  }
  public function actionFilter(){
    return "当前action显示<br/>";//返回的内容会递交给过滤器,由afterAction处理
  }
}

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Yii编程开发常见调用技巧集锦

    本文实例汇总了Yii编程开发常见调用技巧.分享给大家供大家参考,具体如下: 1. 设置cookie: $cookie = new CHttpCookie('mycookie','this is my cookie'); $cookie->expire = time()+60*60*24*30; //有限期30天 Yii::app()->request->cookies['mycookie']=$cookie; 2. 读取cookie: $cookie = Yii::app()->r

  • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则

    YII的models中的rules部分是一些表单的验证规则,对于表单验证十分有用,在相应的视图(views)里面添加了表单,在表单被提交之前程序都会自动先来这里面的规则里验证,只有通过对其有效的限制规则后才能被提交,可以很有效地保证表单安全和信息的有效性.还是给大家具体说明一下: 以下是视图(views)部分的简单代码: <?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'tag-form', 'enableAjaxVa

  • Yii2框架实现数据库常用操作总结

    通用: use yii\db\Query; $query = new Query(); 查询: Query: $rows = (new \yii\db\Query()) ->select(['code', 'name', 'population']) ->from('country') ->limit(10) ->all(); Select: $data = $query->select(['code', 'name'])->from('country')->al

  • Yii使用技巧大汇总

    本文汇总了Yii使用技巧.分享给大家供大家参考,具体如下: 一.从yii权威指中学到的 db组件 'schemaCachingDuration'=>3600, 为什么不起做用? 需要开缓存 如何在页面下边显示sql的查询时间 在log组件的routes中加入 array( 'class'=>'CProfileLogRoute', 'levels'=>'error, warning', ) 同时在db组件中加入 复制代码 代码如下: 'enableProfiling'=>true,

  • yii2 页面底部加载css和js的技巧

    一般来说,网页内部的js文件或代码,都是放置在网页底部</body>的前面,这是因为网页自上而下加载,用户在访问我们页面的时候尽量不要因为加载js展现过长时间的空白页面,停留时间过长就白白流失了用户量. yii2中是集成了jQuery的,而且jQuery文件是加载在页面底部的,因此,如果我们的js代码段不在页面底部加载,就很大可能会发生$未定义的友好提示. 我这废话一大堆得毛病确实需要去挂个号看看了... 先来看看js代码段怎么处理 <?php $this->registerJs(

  • Yii基于数组和对象的Model查询技巧实例详解

    本文实例讲述了Yii基于数组和对象的Model查询技巧.分享给大家供大家参考,具体如下: 对于一个Model Post 有如下的4中查询方法,返回对象或者对象数组. //查找满足指定条件的结果中的第一行 find the first row satisfying the specified condition $post=Post::model()->find($condition,$params); //查找具有指定主键值的那一行 find the row with the specified

  • PHP的Yii框架中过滤器相关的使用总结

    Yii过滤器简介 过滤器是一段代码,可被配置在控制器动作执行之前或之后执行.例如, 访问控制过滤器将被执行以确保在执行请求的动作之前用户已通过身份验证:性能过滤器可用于测量控制器执行所用的时间. 一个动作可以有多个过滤器.过滤器执行顺序为它们出现在过滤器列表中的顺序.过滤器可以阻止动作及后面其他过滤器的执行. 过滤器有两种写法: 基于方法的过滤器 基于自定义过滤器类的过滤器 无论哪种过滤器,都必须在控制器中重写控制器的public function filters()方法,设置哪个过滤器对哪个动

  • Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源

    这回要说的是,如何给 Yii2 项目添加外部资源(external assets),以 FontAwesome 为例子. Yii2 开始使用 composer 来做项目的依赖管理,这货是类似于 NodeJS 里面 npm 的东东,可以自动获取 Github 上最新版本的第三方库(比如 Bootstrap 啦,FontAwesome 啦之类的).按官方教程装好后,就可以开始初始化项目了. 一.初始化项目 通过 Composer 来初始化 php composer.phar create-proje

  • YiiFramework入门知识点总结(图文教程)

    本文总结了YiiFramework入门知识点.分享给大家供大家参考,具体如下: 创建Yii应用骨架 web为网站根目录 yiic webapp /web/demo 通过GII创建model和CURD时需要注意 1.Model Generator 操作 即使在有表前缀的情况下,Table Name中也要填写表的全名,即包括表前缀.如下图: 2.Crud Generator 操作 该界面中,Model Class中填写model名称.首字母大写.也可参照在生成model时,在proctected/m

  • yii2-GridView在开发中常用的功能及技巧总结

    数据网格或者说 GridView 小部件是Yii中最强大的部件之一.它有一个属性名叫 dataProvider ,这个属性能够提供一个数据提供者的示例并且可以显示所提供的数据,即使用 yii\grid\GridView::columns 属性的一组列配置,在一个表格中渲染每一行数据. 例如, use yii\helpers\Html; use yii\grid\GridView; <?= GridView::widget([ 'dataProvider' => $dataProvider, '

  • YII框架常用技巧总结

    本文实例总结了YII框架常用技巧.分享给大家供大家参考,具体如下: 获取当前Controller name和action name(在控制器里面使用) echo $this->id; echo $this->action->id; 控制器获取当前模块 $this->module->id 不生成label标签 // ActiveForm类 $form->field($model, '字段名')->passwordInput(['maxlength' => tr

随机推荐