我有MyEntity.php模型。作为模型脚本的一部分,定义了一些规则和一些场景:
public function rules()
{
return [
[['myentity_id', 'myentity_title', 'myentity_content', 'myentity_date'], 'required'],
[['myentity_id'], 'integer'],
[['myentity_title', 'myentity_content'], 'string', 'max' => 120],
[['myentity_date'], 'safe'],
];
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['scenario_one'] = ['myentity_id', 'myentity_title'];
$scenarios['scenario_two'] = ['myentity_id', 'myentity_content'];
return $scenarios;
}
我需要能够有不同的场景,并且对于不同的操作,只有某些验证(通过参数)才能处于活动状态。例如,scenario_one 用于 actionOne,scenario_two 用于 actionTwo 等。
这是控制器的一小部分代码:
public function actionOne($id)
{
$modelMyEntity = $this->findModel($id);
$modelMyEntity->scenario = 'scenario_one';
.
.
.
}
public function actionTwo($id)
{
$modelMyEntity = $this->findModel($id);
$modelMyEntity->scenario = 'scenario_two';
.
.
.
}
现在我想要一个根本不应该有任何验证的场景三。我将在代码中进行额外的检查,以防止在数据库中存储时失败。我只需要确保没有应用任何验证,因为它会阻止我的表单提交。如果我不应用任何方案,则应用默认方案(所有列出的验证都将处于活动状态,这与我需要的方案完全相反)。