有两个所需的功能:设置密码注册和更改密码,如果用户忘记它。当用户注册时,密码长度必须至少为4个字符;当更改通过时-至少5个字符。
视图用于注册和更改通行证。显然,还存在两个操作,其中任何一个场景“注册”,或者使用“更改”。模型中的代码片段:
public function rules() {
return [
['password', 'string', 'min' => 4, 'on' => 'signup'],
['password', 'string', 'min' => 5, 'on' => 'change'],
];
}但是我想通过场景()来做。该怎么做呢?我是Yii的初学者,所以不知道什么时候和如何使用场景()。谢谢。
UPD.我需要为 one 字段和ONE规则使用(),但是需要为这个规则使用不同的参数。how to define a scenario in Yii2? -这不是我的案子。
发布于 2015-07-06 19:09:17
正如scenarios()所说:该方法的默认实现将返回rules()声明中的所有场景。因此,通常不需要重写此方法,因为它将查找on数组键来为当前场景设置活动属性,并对它们进行正确的验证。
因此,在您的示例中,相同属性的不同验证的'on' => 'some scenario'正是您所需要的。
https://stackoverflow.com/questions/31252747
复制相似问题