【问题标题】:Make default attribute for Model in October CMS在 10 月 CMS 中为模型设置默认属性
【发布时间】:2017-05-02 11:28:44
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php forms models backend octobercms


    【解决方案1】:

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

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

    【讨论】:

    • 没错,这是唯一的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多