这篇文章将为大家详细讲解有关yii过滤器有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联建站-专业网站定制、快速模板网站建设、高性价比安宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式安宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖安宁地区。费用合理售后完善,十载实体公司更值得信赖。
过滤器
过滤器是控制器动作执行之前或之后执行的对象。 例如访问控制过滤器可在动作执行之前来控制特殊终端用户是否有权限执行动作, 内容压缩过滤器可在动作执行之后发给终端用户之前压缩响应内容。 (推荐学习:yii框架)
过滤器可包含预过滤(过滤逻辑在动作之前)或后过滤(过滤逻辑在动作之后), 也可同时包含两者。
使用过滤器
过滤器本质上是一类特殊的 行为, 所以使用过滤器和 使用行为一样。 可以在控制器类中覆盖它的 behaviors() 方法来声明过滤器,如下所示:
public function behaviors() { return [ [ 'class' => 'yii\filters\HttpCache', 'only' => ['index', 'view'], 'lastModified' => function ($action, $params) { $q = new \yii\db\Query(); return $q->from('user')->max('updated_at'); }, ], ]; }
控制器类的过滤器默认应用到该类的 所有 动作, 你可以配置 only 属性明确指定控制器应用到哪些动作。 在上述例子中,HttpCache 过滤器只应用到 index 和 view 动作。 也可以配置 except 属性 使一些动作不执行过滤器。
除了控制器外,可在 模块或应用主体 中申明过滤器。 申明之后,过滤器会应用到所属该模块或应用主体的 所有 控制器动作, 除非像上述一样配置过滤器的 only 和 except 属性。
注意: 在模块或应用主体中申明过滤器,在only 和 except 属性中使用路由 代替动作 ID, 因为在模块或应用主体中只用动作ID并不能唯一指定到具体动作。
当一个动作有多个过滤器时,根据以下规则先后执行:
预过滤
按顺序执行应用主体中 behaviors() 列出的过滤器。
按顺序执行模块中 behaviors() 列出的过滤器。
按顺序执行控制器中 behaviors() 列出的过滤器。
如果任意过滤器终止动作执行, 后面的过滤器(包括预过滤和后过滤)不再执行。
成功通过预过滤后执行动作。
后过滤
倒序执行控制器中 behaviors() 列出的过滤器。
倒序执行模块中 behaviors() 列出的过滤器。
倒序执行应用主体中 behaviors() 列出的过滤器。
关于“yii过滤器有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
本文标题:yii过滤器有什么用
转载来源:http://scpingwu.com/article/igoceo.html