class User extends ActiveRecord
{ [b]const SCENARIO_LOGIN = 'login';
const SCENARIO_REGISTER = 'register'; [/b]
public function scenarios()
{
return [
self::SCENARIO_LOGIN => ['username', 'password'],
self::SCENARIO_REGISTER => ['username', 'email', 'password'],
];
}
}
然后在相应的规则条目中,指定使用的场景名称:
public function rules()
{
return [
// username, email and password are all required in "register" scenario [['username', 'email', 'password'], 'required', [b]'on' => self::SCENARIO_REGISTER], [/b]
// username and password are required in "login" scenario [['username', 'password'], 'required',[b] 'on' => self::SCENARIO_LOGIN], [/b]
];
}
最后,在应用程序中初始化这个模块时,同时初始化所处的场景:
// scenario is set as a property
$model = new User; [b]$model->scenario[/b] = User::SCENARIO_LOGIN;
// scenario is set through configuration
$model = new User(['scenario' => User::SCENARIO_LOGIN]);
1 个回复
zkbhj - 凯冰科技站长
赞同来自:
在Model中定义场景变量:
然后在相应的规则条目中,指定使用的场景名称:
最后,在应用程序中初始化这个模块时,同时初始化所处的场景:
参考地址:http://www.yiiframework.com/do ... .html