今天听到的是场景的分享,其实我在实际的项目中没有用到过,如果有单独的一两个字段需要额外的限制,我会选在在控制器中利用addError()来控制,不过今天听到场景的分享,也就做了一个记录
常见的场景的设置,在网上能看到很多分享,我去粘贴一下
在Model中有两种方式可以设置场景
public function scenarios()
{
return [
'login'=>['username','password'],
'singup'=>['username'],
];
}
两种方式
public function rules()
{
return [['username'],'require','on'=>'login']
}
在控制器中添加
$model->setScenarios=("login");
或$model = new UserModel(['scenarios'=>'login']);
之后就可以在在不同的场景实现不同的验证方式
我写的验证例子和实际场景是没有实际意义的,因为不想再去敲一次代码了,所以就随手写了,让自己以后再看的时候知道基本的语法规则就OK,
另外有一个扩充
关键词except 排除场景
[规则 ,'except'=>'场景名称']
这么写的用处是在实际运用当中,排除该场景之外的场景运用的规则