silverstripe设置默认的HTMLText值

时间:2018-09-28 10:01:22

标签: php silverstripe silverstripe-4

我需要为HTMLEditorField设置默认值,以便用户可以在添加内容时以此为起点。

我尝试以不同方式在populateDefaults中设置默认值,但没有成功。不能为HTMLText设置默认值吗?

下面的代码显示了我要执行的操作。

  private static $db = [
      'MyHtmlField' => 'HTMLText'
   ];

   public function getCMSFields()
   {
      $fields = parent::getCMSFields();
      $fields->addFieldToTab('Root.Main', HTMLEditorField::create('MyHtmlField'), 'Content');
      return $fields;
   }

   public function populateDefaults()
   {
      $this->MyHtmlField =
         DBHTMLText::create('<p>Some content</p>'
   );

2 个答案:

答案 0 :(得分:0)

第一次创建页面时写默认值如何?

# File: Page.php
public function onBeforeWrite()
{
    parent::onBeforeWrite();

    if (!$this->isInDB()) {
        // Set some default content
        $this->MyHtmlField = '<p>Some content</p>';
    }
}

答案 1 :(得分:0)

populateDefaults的函数不需要DBHTMLText::create并随后调用超类。请参阅docs

public function populateDefaults() {

      $this->MyHtmlField = '<p>Some content</p>';

      parent::populateDefaults();
}