我希望在创建时需要两个字段,但在更新时不需要,我已经研究过并发现使用Yii2场景是我需要做的事情。但是,当我在模型中将两个字段设置为必需,然后单击我的表单中的提交时,验证确实有效,并告诉我填写字段但是当我填写字段并单击提交时,表单不能正确提交并且它们两个特定的字段被清空,它告诉我它们是空的,即使最初id填充它们。
模型设置
[['featured_image', 'gallery'],'required', 'on' => 'create']
控制器设置
$model = new Posts();
$model->scenario = 'create';
答案 0 :(得分:1)
当您更新或创建项目时,ActiveRecord不会自动设置方案。您必须覆盖模型中的save()方法并设置所需的方案。例如。在你的情况下
public function save($runValidation = true, $attributeNames = null) {
if ($this->getIsNewRecord()) {
$this->scenario = 'create';
return parent::save($runValidation, $attributeNames);
}
}