在 October CMS 中为模型设置默认属性

Make default attribute for Model in October CMS

我正在 Controller 中制作后端 Ajax 表单操作。

$this->asExtension('FormController')->create_onSave();

field.yaml 文件中有 4 个字段,它们的所有值都完美无缺,验证有效。
在数据库中我需要传递第五个值:theme,这只是当前活动的主题,所以我不想在页面上显示它。
当我尝试将它添加到模型中时,问题就开始了:

public function beforeSave()
{
    $this->attributes['theme'] = Theme::getActiveThemeCode();
}

在模型中添加此方法后,所有 5 个值都会进入数据库,但它们会跳过验证,因此在数据库中我可以添加空值。是什么导致了这个问题?

我认为您必须将值分配给当前实例中的 属性,而不是尝试覆盖原始值。

public function beforeSave()
{
  $this->theme = Theme::getActiveThemeCode();
}