Yii2 Model scenarios 使用

官方文档地址:https://www.yiiframework.com/doc/guide/2.0/en/structure-models
应用场景:
同一个form表单在create和update时,update时不需依赖主键字段,而create时则不需要验证该字段,这时对该字段进行场景标识区分

public function rules()
{
	return [
		[['attribute_set_id'], 'required', 'on'=>self::SCENARIO_UPDATE],
		[['attribute_set_id', 'status'], 'integer'],
		[['attribute_set_name', 'note'], 'string', 'max' => 255],
		[['attribute_set_id'], 'unique'],
	];
}

由于默认继承了ActiveRecord,默认都自带一个default的scenarios,Model支持的scenarios由Model中声明的验证规则决定。也可以通过重写的方式进行自定义scenarios

 public function scenarios()
{
	return [
		self::SCENARIO_LOGIN => ['username', 'password'],
		self::SCENARIO_REGISTER => ['username', 'email', 'password'],
	];
}