如何清除Silverstripe CMS中的表单输入

尼尔斯

有人可以指导我看一个示例,该示例如何在将dataObject的字段转储到DB中之前对其进行清理?

我不知道在哪里看。

我想清除一些用户输入,然后再将其保存到SiteConfig中。

3dgoo

您可以自定义的保存行为PageDataObjectSiteConfig使用onBeforeWrite函数。

调用write()将对象保存到数据库时触发该函数这包括在CMS中保存页面或更改ModelAdmin记录。

这是Silverstripe 3.1的示例,该示例onBeforeWrite在SiteConfig扩展上使用以去除字符并将字符转换为文本字段中的小写字母:

SiteConfig onBeforeWrite示例

class CustomSiteConfig extends DataExtension {

    private static $db = array(
        'TwitterUsername' => 'Text'
    );

    public function updateCMSFields(FieldList $fields) {
        $fields->addFieldToTab('Root.Main', new TextField('TwitterUsername', 'Twitter Username'));
    }

    public function onBeforeWrite() {
        $this->owner->TwitterUsername = strtolower($this->owner->TwitterUsername);
        $this->owner->TwitterUsername = preg_replace("/[^a-z0-9]/", '', $this->owner->TwitterUsername);

        parent::onBeforeWrite();
    }
}

注意:为了使上面的示例起作用,CustomSiteConfig需要扩展名应用于SiteConfig这可以通过yml配置文件或_config.php文件完成。

mysite / _config / config.yml

---
Name: site
After: 'framework/*','cms/*'
---

# ...

# SiteConfig Extension

SiteConfig:
  extensions:
    - CustomSiteConfig

# ...

要么

mysite / _config.php

global $project;
$project = 'mysite';

// ...

SiteConfig::add_extension('CustomSiteConfig');

// ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当模型在AngularJS中更改时,如何清除表单输入?

来自分类Dev

清除Bootstrap中的表单输入字段?

来自分类Dev

清除Angular表单提交中的输入字段?

来自分类Dev

提交后如何清除表单输入?

来自分类Dev

如何清除bash中的输入

来自分类Dev

如何在javascript或jquery中清除表单字段(输入,文本区域,选择和单选)

来自分类Dev

jQuery中的表单输入类型时间清除事件

来自分类Dev

无法在Angular的ngDialog模板中清除表单输入值

来自分类Dev

用户输入后如何清除表单上的验证消息

来自分类Dev

如何从AngularUI提前输入中清除文本

来自分类Dev

如何清除Validator类中的输入字段?

来自分类Dev

如何清除AngularJS中的输入字段

来自分类Dev

如何清除jQuery中的特定输入字段

来自分类Dev

如何清除ReactJS中的受控输入?

来自分类Dev

如何清除Angular中过滤的输入字段?

来自分类Dev

如何清除AngularJS中的输入字段

来自分类Dev

如何清除不在列表中的输入

来自分类Dev

如何从表单验证中删除或禁用输入

来自分类Dev

如何从表单输入中插入外键值?

来自分类Dev

如何从Java Servlet中的表单获取输入

来自分类Dev

如何提交表单中的禁用输入元素?

来自分类Dev

如何从输入表单中获取数据

来自分类Dev

在单独的树枝中呈现表单时,如何访问表单输入?

来自分类Dev

关注表单时如何更改表单中输入标签的颜色?

来自分类Dev

如何从SilverStripe表单的textarea中删除默认类

来自分类Dev

如何从SilverStripe表单的textarea中删除默认类

来自分类Dev

如何将数据输入中的报表输入表单?

来自分类Dev

如何清除加载了ajax的表单?

来自分类Dev

如何在表单提交时重置下拉值,其他输入值已在React Hooks中清除

Related 相关文章

  1. 1

    当模型在AngularJS中更改时,如何清除表单输入?

  2. 2

    清除Bootstrap中的表单输入字段?

  3. 3

    清除Angular表单提交中的输入字段?

  4. 4

    提交后如何清除表单输入?

  5. 5

    如何清除bash中的输入

  6. 6

    如何在javascript或jquery中清除表单字段(输入,文本区域,选择和单选)

  7. 7

    jQuery中的表单输入类型时间清除事件

  8. 8

    无法在Angular的ngDialog模板中清除表单输入值

  9. 9

    用户输入后如何清除表单上的验证消息

  10. 10

    如何从AngularUI提前输入中清除文本

  11. 11

    如何清除Validator类中的输入字段?

  12. 12

    如何清除AngularJS中的输入字段

  13. 13

    如何清除jQuery中的特定输入字段

  14. 14

    如何清除ReactJS中的受控输入?

  15. 15

    如何清除Angular中过滤的输入字段?

  16. 16

    如何清除AngularJS中的输入字段

  17. 17

    如何清除不在列表中的输入

  18. 18

    如何从表单验证中删除或禁用输入

  19. 19

    如何从表单输入中插入外键值?

  20. 20

    如何从Java Servlet中的表单获取输入

  21. 21

    如何提交表单中的禁用输入元素?

  22. 22

    如何从输入表单中获取数据

  23. 23

    在单独的树枝中呈现表单时,如何访问表单输入?

  24. 24

    关注表单时如何更改表单中输入标签的颜色?

  25. 25

    如何从SilverStripe表单的textarea中删除默认类

  26. 26

    如何从SilverStripe表单的textarea中删除默认类

  27. 27

    如何将数据输入中的报表输入表单?

  28. 28

    如何清除加载了ajax的表单?

  29. 29

    如何在表单提交时重置下拉值,其他输入值已在React Hooks中清除

热门标签

归档