我有以下规则和方案
public function rules(){
return [
[['name','email','password'],'required'],
['email','myvalidation'],
['email','email'],
[['name', 'email', 'password'], 'required', 'on' => 'register'],
];
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['login'] = ['name','password','email'];//Scenario Values Only Accepted
return $scenarios;
}
Run Code Online (Sandbox Code Playgroud)
我希望rule 'myvalidation'仅应用于login场景而在其他情况下根本不应用.如何实现这一点Yii2?
Edu*_*rdo 16
请记住,您也可以使用"除外".例如:
public function rules()
{
return [
[['first_name', 'email', 'phone', 'password'], 'required', 'except' => 'changepassword'],
[['password'], 'required', 'on' => 'changepassword']
]}
Run Code Online (Sandbox Code Playgroud)
aro*_*hev 13
只要指定有关在此验证规则属性:
['email', 'myvalidation', 'on' => 'login'],
Run Code Online (Sandbox Code Playgroud)