重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关yii过滤器有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
公司主营业务:网站设计制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出绩溪免费做网站回馈大家。过滤器
过滤器是控制器动作执行之前或之后执行的对象。 例如访问控制过滤器可在动作执行之前来控制特殊终端用户是否有权限执行动作, 内容压缩过滤器可在动作执行之后发给终端用户之前压缩响应内容。 (推荐学习: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过滤器有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。