本文实例叙述了Yii调整器中filter过滤器用法。分享给大家供大家参照他事他说加以考察,具体如下:

正文实例陈述了YII
Framework的filter过滤器用法。分享给大家供大家参谋,具体如下:

本文实例汇报了Yii2验证器用法。分享给我们供大家参谋,具体如下:

正文实例呈报了Yii第22中学cookie用法。共享给大家供大家参考,具体如下:

正文实例陈说了AngularJS过滤器filter用法。分享给大家供我们参照他事他说加以考查,具体如下:

点名过滤动作,方法在新建,列表,管理页面调用时接纳卡塔 尔(阿拉伯语:قطر‎

首先看官方给出的证实文书档案,什么是过滤器,过滤器的成效,过滤器的平整,过滤器的定义方法等等。

先看一下验证器的运用。

 'cookie_monster', 'value' => 'Me want cookie!', 'expire' => time;\Yii::$app->getResponse->add;//读取方法$value = \Yii::$app->getRequest->getValue;//给cookie加域名$cookie = new Cookie([ 'name' => 'cookie_monster', 'value' => 'Me want cookie everywhere!', 'expire' => time() + 86400 * 365, 'domain' => '.example.com' // <<<=== HERE]);\Yii::$app->getResponse->add;//设置登录cookie$config = [ // ... 'components' => [ // ... 'user' => [ 'class' => 'yii\web\User', 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, 'loginUrl' => '/user/login', 'identityCookie' => [ //  '_identity', 'httpOnly' => true, 'domain' => '.example.com', ], ], 'request' => [ 'cookieValidationKey' => 'your_validation_key' ], 'session' => [ 'cookieParams' => [ 'domain' => '.example.com', 'httpOnly' => true, ], ], ],];//只给批定目录配置cookie$config = [ // ... 'components' => [ // ... 'session' => [ 'name' => 'admin_session', 'cookieParams' => [ 'httpOnly' => true, 'path' => '/admin', ], ], ],];?>

那节大家来寻访angularjs的过滤器filter。

public function filters(){ return array( 'accessControl', // perform access control for CRUD operations 'postOnly + delete', // we only allow deletion via POST request 'projectContext +create index admin', );}

下一场对过滤器实行三个计算。

public function rules(){ return [ [['email', 'password'], 'required'], ['password', 'string', 'min'=>6], ];}

更加多关于Yii相关内容感兴趣的读者可查阅本站专项论题:《Yii框架入门及常用技艺计算》、《php优越开荒框架总计》、《smarty模板入门底蕴教程》、《php面向对象程序设计入门教程》、《php字符串用法总计》、《php+mysql数据库操作入门教程》及《php司空见惯数据库操作才具汇总》

在大家付出中平日索要在页面显示给客户的新闻供给一定管理格式化,本事展现给客商。比如时间本地化,大概yyyy-MM-dd
HH:mm:ss格式,数字精度格式化,本地化,人名格式化等等。在angularjs中为大家提供了叫filter的命令,让大家能够很随意就会不蔓不枝着有个别列的功用,angularjs内部为大家提供了number等重重松手的filter。并且大家能够很自由的自定义自个儿的圈子filter。

增多一些过滤器逻辑,定义过滤方法,过滤方法前必加filter

如上所示,验证器重要使用在rules里面,对日前model里面包车型地铁属性值举办验证以检讨是还是不是满足某种必要。

仰望本文所述对我们基于Yii框架的PHP程序设计具备利于。

num:
{{num | number}}
{{num | number:2}}
first name:
last name:
name: {{person | fullname}} 
name: {{person | fullname:"- -"}} 
name: {{person | fullname:" " | uppercase }}

function test {}angular.module.controller.filter("fullname", function() { var filterfun = function { sep = sep || " "; person = person || {}; person.first = person.first || ""; person.last = person.last || ""; return person.first + sep + person.last; }; return filterfun;});
public function filterProjectContext{ $prijectId = null; if{ $projectId = $_POST['pid']; }elseif{ $projectId = $_GET['pid']; } $this->loadProject; $filterChain->run();}public function loadProject{ if($this->_project === null){ $this->_project = Project::model()->findbyPK; if($this->_project === null){ throw new CHttpException; } } return $this->_project;}

过滤器是生龙活虎段代码,可被铺排在调控器动作实践从前或以往实施。比如,
访谈调节过滤器将被实践以保险在奉行诉求的动作从前客商已经过身份验证;品质过滤器可用于衡量调整器推行所用的流年。

验证器使用格式:

​jsfiddle效果:

越多关于Yii相关内容感兴趣的读者可查阅本站专项论题:《Yii框架入门及常用技能总括》、《php优异开采框架总结》、《smarty模板入门基本功教程》、《php面向对象程序设计入门教程》、《php字符串用法计算》、《php+mysql数据库操作入门教程》及《php不以为奇数据库操作本领汇总》

三个动作能够有三个过滤器。过滤器推行各类为它们出今后过滤器列表中的顺序。过滤器可以阻挡动作及末端其余过滤器的奉行

挥洒格式为:[须要注解的性质,验证器名称,验证器参数]。

在实例中率先演示了angularjs自带的number的filter使用。再同样为大家样式了什么样去创设一个angularjs的filter。其落到实处很简单.angularjs使得扩大一切变得千真万确

企望本文所述对大家基于Yii框架的PHP程序设计具备利于。

过滤器能够定义为叁个决定器类的秘籍。方法名必需以 filter
开端。比方,现成的 filterAccessControl 方法定义了七个名叫 accessControl
的过滤器。 过滤器方法必需为如下结构:

要是急需表达的属性为四个可用数组,假若为贰特性质可用字符串也可用数组来代表。

末段验明正身:angularjs
filters扶植链式写法,怎么样powershell也许别的操作系统外壳语言相仿的管道式模型,形如
value | filter1 | filter2。

public function filterAccessControl{ // 调用 $filterChain->run() 以继续后续过滤器与动作的执行。}

每一种属性都足以有三个验证器,如上边的password使用了
required和string三个验证器。

期待本文所述对大家AngularJS程序设计具有助于。

中间的 $filterChain 是三个 CFilterChain
的实例,代表与所乞求动作相关的过滤器列表。在过滤器方法中, 大家能够调用
$filterChain->run() 以继续试行后续过滤器和动作。

常用验证器:

过滤器也得以是三个 CFilter
或其子类的实例。如下代码定义了叁个新的过滤器类:

Yii2已经嵌入了有些常用的验证器。全部的验证器都从基类yii\validators\Validator世襲完毕。笔者差少之甚少计算下有这么几类。

class PerformanceFilter extends CFilter{ protected function preFilter { // 动作被执行之前应用的逻辑 return true; // 如果动作不应被执行,此处返回 false } protected function postFilter { // 动作执行之后应用的逻辑 }}

数字相关:

要对动作应用过滤器,我们必要覆盖 CController::filters()
方法。此情势应再次回到贰个过滤器配置数组。比如:

integer——整数用来检查评定属性值是不是为整数,以致最大、最小值检查评定等。(yii\validators\NumberValidator)

class PostController extends CController{ ...... public function filters() { return array( 'postOnly + edit, create', array( 'application.filters.PerformanceFilter - edit, create', 'unit'=>'second', ), ); }}

double——浮点用来检查测验属性值是还是不是为浮点数,即小数。(yii\validators\NumberValidator)

上述代码内定了两个过滤器: postOnly 和 PerformanceFilter。 postOnly
过滤器是借助方法的(相应的过滤器方法已在 CController 中定义卡塔 尔(阿拉伯语:قطر‎; 而
performanceFilter
过滤器是依照对象的。路线小名application.filters.PerformanceFilter
内定过滤器类文件是protected/filters/PerformanceFilter。大家应用叁个数组配置
PerformanceFilter ,那样它就可被用于起先化过滤器对象的属性值。此处
PerformanceFilter 的 unit 属性值将被起头为 second。

number——数字这么些和地方的double完全相符,只是用了2个称呼。(yii\validators\NumberValidator)

应用加减号,大家可钦命哪些动作应该或不应当选择过滤器。上述代码中,
postOnly 应只被运用于 edit 和create 动作,而 PerformanceFilter
应被选取于 除了 edit 和 create 之外的动作。
如若过滤器配置中尚无动用加减号,则此过滤器将被应用于全部动作。

格式相关:

过滤器功效:

date——日期查证属性值是或不是为精确的日子格式。(yii\validators\DateValidator)

用于对报事人和数据的过滤和对拜见操作的笔录

email——邮件检查实验属性值是或不是是正确的电子邮件格式。(yii\validators\EmailValidator)

生龙活虎当作controller的一个办法。方法名以filter初始。

url——U宝马X3L用来判定属性值是或不是是准确的url地址。(yii\validators\UrlValidator)

public function filterAccessControl{ echo "--->filterAccessControl"; $filterChain->run();}

对值进行函数管理:

二定义对峙的filter类,须求extends CFilter。

filter——过滤器这些是对属性值举办加工管理的。如对质量值加前缀、替换特定的字符串等等。(yii\validators\FilterValidator)

CFilter

trim——裁边这一个是对属性值进行加工管理的。只是去掉字符串两边的空格、或钦命的字符串。(yii\validators\FilterValidator)

 * @version $Id: CFilter.php 2799 2011-01-01 19:31:13Z qiang.xue $ * @package system.web.filters * @since 1.0 */ class CFilter extends CComponent implements IFilter { /** * Performs the filtering. * The default implementation is to invoke {@link preFilter} * and {@link postFilter} which are meant to be overridden * child classes. If a child class needs to override this method, * make sure it calls $filterChain->run() * if the action should be executed. * @param CFilterChain $filterChain the filter chain that the filter is on. */ public function filter { if($this->preFilter { $filterChain->run(); $this->postFilter; } } /** * Initializes the filter. * This method is invoked after the filter properties are initialized * and before {@link preFilter} is called. * You may override this method to include some initialization logic. * @since 1.1.4 */ public function init() { } /** * Performs the pre-action filtering. * @param CFilterChain $filterChain the filter chain that the filter is on. * @return boolean whether the filtering process should continue and the action * should be executed. */ protected function preFilter { return true; } /** * Performs the post-action filtering. * @param CFilterChain $filterChain the filter chain that the filter is on. */ protected function postFilter { } }

上传文件注明:

下边譬喻表达二种filter法规的使用:

file——文件这么些关键是对上传的公文举办验证,如格式、大小等。(yii\validators\FileValidator)

SiteController.php

image——图片那几个和地点的file验证器大致,然而是特别用来证实图片的。(yii\validators\ImageValidator)

layout='mylayout'; } public function filters() { return array( 'AccessControl - create', array( 'application.filters.MyFilter + create', ), ); } public function filterAccessControl { echo "--->filterAccessControl"; $filterChain->run(); } public function actionCreate() { echo "--->create action"; } public function actionPrint() { echo "--->print action"; } 

看清比较:

/www/yii_dev/testwebap/protected# tree .├── commands│ ├── shell│ ├──
TestCommand.php│ └── TestCommand.php~├── components│ ├── Controller.php│
└── UserIdentity.php├── config│ ├── console.php│ ├── main.php│ └──
test.php├── controllers│ ├── post│ │ └── UpdateAction.php│ ├──
SiteController.php│ ├── TestTestController.php│ └──
UserController.php├── filters│ └── MyFilter.phpMyFilter.php

compare——相比较用来对三个属性值举办相比,如相等、大于、小于相比较等。(yii\validators\CompareValidator)

MyFilter-->pre"; return true; // false if the action should not be executed } protected function postFilter  { echo "-->MyFilter-->post"; } } 

in——包蕴用来检验属性值是不是带有在钦点的数组中。(yii\validators\RangeValidator)

exist——存在用来检验在数额表中是还是不是早就存在那属性值。(yii\validators\ExistValidator)

—>filterAccessControl—>print action

unique——唯黄金年代性这些和exist差不离,用来检验值是还是不是是唯风流倜傥。(yii\validators\UniqueValidator)

string——字符串对属性值举行长度判别,如最大尺寸、最短长度等。(yii\validators\StringValidator)

–>MyFilter–>pre—>create action–>MyFilter–>post

boolean——布尔型用来检查属性的值是不是为布尔值。(yii\validators\BooleanValidator)

public function filters(){ return array( 'AccessControl - create', array( 'application.filters.MyFilter + create,print', ), );}

default——私下认可值那个是用来给属性设置暗许值的。如当属性值为null的时候,给它设置为
空的暗许值。(yii\validators\DefaultValueValidator)

action–>MyFilter–>post

required——必填那几个用来检查属性值是不是为空。(yii\validators\RequiredValidator)

以上方可观望filter的具体施行流程。

captcha——验证码这么些第一是在分界面使用验证码的时候对验证码进行求证的。(yii\captcha\CaptchaValidator)

在filters中有-、+具体职能是+表示无非效用于那意气风发部分action-前边跟action名称列表。表示免除在外。若无-、+则会利用的有着的action

match——正则表明式那几个就比较强硬了,用来检查测验属性值是或不是合作给出的正则。上边所列出的中坚都得以用那么些完结。(yii\validators\RegularExpressionValidator)

越来越多关于Yii相关内容感兴趣的读者可查看本站专项论题:《Yii框架入门及常用本事总计》、《php特出开荒框架总计》、《smarty模板入门幼功教程》、《php日期与时间用法总括》、《php面向对象程序设计入门教程》、《php字符串用法总括》、《php+mysql数据库操作入门教程》及《php见惯不惊数据库操作本领汇总》

其它:

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

safe——安全那么些不实行求证,仅仅用来钦赐属性值是安全的。(yii\validators\SafeValidator)

越来越多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技艺计算》、《php优良开采框架计算》、《smarty模板入门基本功教程》、《php面向对象程序设计入门教程》、《php字符串用法总计》、《php+mysql数据库操作入门教程》及《php管见所及数据库操作手艺汇总》

企望本文所述对大家基于Yii框架的PHP程序设计拥有利于。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图