yii2仅在创建操作上的必填字段不使用方案方法

时间:2016-05-25 22:52:32

标签: php forms yii2 yii2-advanced-app

我希望在创建时需要两个字段,但在更新时不需要,我已经研究过并发现使用Yii2场景是我需要做的事情。但是,当我在模型中将两个字段设置为必需,然后单击我的表单中的提交时,验证确实有效,并告诉我填写字段但是当我填写字段并单击提交时,表单不能正确提交并且它们两个特定的字段被清空,它告诉我它们是空的,即使最初id填充它们。

模型设置

[['featured_image', 'gallery'],'required', 'on' => 'create']

控制器设置

    $model = new Posts();
    $model->scenario = 'create';

1 个答案:

答案 0 :(得分:1)

当您更新或创建项目时,ActiveRecord不会自动设置方案。您必须覆盖模型中的save()方法并设置所需的方案。例如。在你的情况下

public function save($runValidation = true, $attributeNames = null) { 
    if ($this->getIsNewRecord()) {
        $this->scenario = 'create';
        return parent::save($runValidation, $attributeNames);
    }
}