特定于场景的Yii2验证规则
我有以下规则和场景特定于场景的Yii2验证规则,yii2,Yii2,我有以下规则和场景 public function rules(){ return [ [['name','email','password'],'required'], ['email','myvalidation'], ['email','email'], [['name', 'email', 'password'], 'required', 'on' => 'registe
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;
}
我希望规则
“myvalidation”仅适用于登录
场景,而不适用于其他情况。如何在Yii2
中实现这一点?只需在此验证规则中指定属性:
['email', 'myvalidation', 'on' => 'login'],
请记住,您也可以使用“except”。例如:
public function rules()
{
return [
[['first_name', 'email', 'phone', 'password'], 'required', 'except' => 'changepassword'],
[['password'], 'required', 'on' => 'changepassword']
]}
这是什么?这是一个场景。该规则仅在设置该场景时适用:)