OctoberCMS:如何防止表单文件被保存到数据库中?

时间:2016-12-15 13:18:56

标签: php mysql laravel octobercms octobercms-backend

我有一个表单字段定义文件,如下所示:

fields:
    pivot[hall]:
        label: Hall
        type: text
        span: auto

    pivot[booth]:
        label: Booth
        type: text
        span: auto

    booth_picker:
        label: Select Booth
        type: boothpicker
        span: full

第三个字段只是一个表单窗口小部件,它提供了一种方便的可视方式来设置booth字段的值。因此,我不需要提交booth_picker字段并将其保存到数据库中,因为表中没有这样的字段。只需提交并保存hallbooth。我目前收到此错误:

  

SQLSTATE [42S22]:找不到列:1054未知列'booth_picker'   在'字段列表'中(SQL:更新users设置updated_at = 2016-12-15   13:14:44,booth_picker = id = 37)“

如何阻止提交此辅助字段?或者也许有一种方法可以在将模型保存到数据库之前删除此字段?

2 个答案:

答案 0 :(得分:4)

尝试在字段名称之前添加下划线(新的十月Cms功能,所以可能需要将其升级到版本382)

就像_booth_picker

一样

编辑:我不确定,但似乎此功能不适用于复选框字段: - (

答案 1 :(得分:2)

我们可以在purgeable属性中定义字段名称。

  

创建或更新模型时,清除的属性不会保存到数据库中。要清除模型中的属性,请应用October \ Rain \ Database \ Traits \ Purgeable特征,并声明$ purgeable属性以及包含要清除的属性的数组。

    /**
     * @var array List of attributes to purge.
     */

    protected $purgeable = ['booth_picker'];

Reference