0中场景的选取小记,0中场景的使用教程

前言

正文首要介绍的是关于Yii2轻巧场景使用的有关内容,共享出来供大家参照他事他说加以考察学习,上边来共同探问详细的牵线:

0中场景的选取小记,0中场景的使用教程。熟识Yii框架的人都清楚,灵活的应用情况可以高达经济的功用!

熟知Yii框架的人都知道,灵活的使用景况能够达到一箭双雕的成效!

熟知Yii框架的人都精通,灵活的采纳情状能够达到规定的标准经济的效劳!

直接上代码(主要部分):

诸如经常的数码的骤增、修改,新扩大须求表明当中多少个字段,而修改只需求证实当中三个字段;还会有种意况,也是我们后天应用的,同一张表(同叁个model)有望在分化的连串分支中动用,但是不用的连串分支对成员变量的申明是不雷同的,那时使用情状就能够轻巧消除;

诸如经常的多寡的疯长、修改,新扩张供给评释当中五个字段,而修改只必要证实个中多少个字段;还可能有种情景,也是大家前日应用的,同一张表(同一个model)有相当大或许在分裂的品种分支中动用,不过不要的花色分支对成员变量的注解是不雷同的,那时使用处境就可以轻便消除;

诸如日常的数指标骤增、修改,新扩大需求表明当中四个字段,而修改只必要证实当中二个字段;还应该有种状态,也是大家前日使用的,同一张表(同一个model)有望在差异的类型分支中动用,不过绝不的门类分支对成员变量的注解是不雷同的,那时使用意况就能够轻易化解;

模型层:

1、Yii第22中学归纳的风貌使用在此处有表明:

1、Yii第22中学归纳的气象使用在这里有证实:

情景使用

 

2、可是对于初学者可能照旧不可能灵活的利用:

2、可是对于初学者也许照旧不能够灵活的使用:

1、Yii2中回顾的光景使用在那边有证实:

 代码如下

1 public function rules()
2 {
3     return [
4         [['name', 'account', 'pwd'], 'string', 'max' => 11],
5         ['account','required','message'=>'用户名不能为空'],
6         ['pwd','required','message'=>'密码不能为空','on'=>'add_customer']
7     ];
8 }
1 public function rules()
2 {
3     return [
4         [['name', 'account', 'pwd'], 'string', 'max' => 11],
5         ['account','required','message'=>'用户名不能为空'],
6         ['pwd','required','message'=>'密码不能为空','on'=>'add_customer']
7     ];
8 }

2、可是对于初学者或然照旧不可能灵活的行使:

publicfunctionrules()

对此rules中钦赐部分成员变量的辨证准绳以及所属场景,照旧引入方面这种写法,当然也得以直接在类里面定义一个情势名称为scenarios的方法;

对此rules中钦赐部分成员变量的注明准则以及所属场景,依然引入方面这种写法,当然也得以向来在类里面定义多少个办法名叫scenarios的方法;

 

{

什么选用:

哪些运用:

 代码如下

 return[

1、假使急需new一个新的目的就动用有些场景,直接动用:

1、若是须求new二个新的靶子就采用有些场景,间接使用:

publicfunctionrules()

美高梅开户网址 ,  [[‘name’,’account’,’pwd’],’string’,’max’=> 11],

1 $bus_department = new BusDepartment(['scenario' => 'add_customer']);
1 $bus_department = new BusDepartment(['scenario' => 'add_customer']);

{

  [‘account’,’required’,’message’=>’客商名不能够为空’],

2、更新数据的时候平时会用到这种:

2、更新数据的时候寻常会用到这种:

return[

  [‘pwd’,’required’,’message’=>’密码不能够为空’,’on’=>’update’]

1 $bus_department = BusDepartment::findOne($id);
1 $bus_department = BusDepartment::findOne($id);

 [[‘name’,’account’,’pwd’],’string’,’max’=> 11],

 ];

选取意况的主意是:

利用处境的艺术是:

 [‘account’,’required’,’message’=>’客商名不能够为空’],

}

1 $bus_department->setScenario('add_customer'); 或者 $bus_department->scenario = 'add_customer';
1 $bus_department->setScenario('add_customer'); 或者 $bus_department->scenario = 'add_customer';

 [‘pwd’,’required’,’message’=>’密码不能够为空’,’on’=>’add_customer’]

 

如此,在操作当前目的的时候就能够遵照所设定的现象实行平整验证。

像这种类型,在操作当前目的的时候就能遵纪守法所设定的景色举行平整验证。

];

控制器:

}

 

 

 代码如下

对此rules中钦命部分成员变量的认证准则以及所属场景,如故引入方面这种写法,当然也得以一贯在类里面定义一个主意名字为scenarios的主意;

$model=newUser();

什么样利用:

if(isset($_POST[‘User’])){

1、倘诺急需new多个新的对象就应用有些场景,直接采用:

 $model-> attributes = Yii::$app->request->post(‘User’);

 代码如下

 $model-> save();

$bus_department=newBusDepartment([‘scenario’=>’add_customer’]);

}

2、更新数据的时候常常会用到这种:

 

 代码如下

这一年在调节器未有调用任何场景。他的结果是:顾客名验证,密码不表达

$bus_department= BusDepartment::findOne($id);

假若在调控器加上一句$model->scenario=’update’其结果是:顾客名,密码都表达了

接纳境况的法子是:

若果那一年再在模型加上几句代码:

 代码如下

 

$bus_department->setScenario(‘add_customer’);
或者$bus_department->scenario =’add_customer’

 代码如下

诸如此比,在操作当前指标的时候就能依照所设定的景色举行平整验证。

publicfunctionscenarios()

{

 return[

  ‘update’=>[‘pwd’],//在本场景下的性质实行认证,别的场景和未有on的都不会评释

 ];

}

 

其结果是:顾客名从未表明,密码验证了

还应该有要静心假使您在模型里重写了scenarios()方法,在调整器调用了情景,那调用的风貌名称必需在scenarios()方法里有,不然出错!

总结

如上就是那篇文章的全体内容了,希望本文的内容对大家的就学大概办事能推动一定的推搡。

发表评论

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

网站地图xml地图