无法将自定义站点配置添加到 Silverstripe 4

Unable to add custom site config to Silverstripe 4

我在关注 original docs,但 /dev/build 没有生成数据库字段,也没有生成表单字段。

这是我的价值 app/_config/app.yml

---
Name: myproject
---
SilverStripe\Core\Manifest\ModuleManifest:
  project: app
---
Silverstripe\SiteConfig\SiteConfig:
  extensions:
    - CustomSiteConfig
---
SilverStripe\Admin\LeftAndMain:
  extra_requirements_css:
    - public/resources/admin/css/custom.css

这是我的 app/src/extensions/CustomSiteConfig.php

<?php

use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
use SilverStripe\ORM\DataExtension;

class CustomSiteConfig extends DataExtension
{

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

    public function updateCMSFields(FieldList $fields)
    {
        $fields->addFieldToTab("Root.Main",
            new HTMLEditorField("FooterContent", "Footer Content")
        );
    }
}

Silverstripe 对我来说是新的,也许我在这里遗漏了一些东西。但我现在正在寻找一个小时,但无法正常工作。

我认为问题在于您构建 YAML 的方式:

---
Name: myproject
---
SilverStripe\Core\Manifest\ModuleManifest:
  project: app
---
Silverstripe\SiteConfig\SiteConfig:
  extensions:
    - CustomSiteConfig
---
SilverStripe\Admin\LeftAndMain:
  extra_requirements_css:
    - public/resources/admin/css/custom.css

--- 块标记配置的每个部分的标题块,因此您在带有 Name: myproject 的部分之后使用的分隔符会创建更多标题块,而不会不再被视为配置。

试试这个:

---
Name: myproject
---
SilverStripe\Core\Manifest\ModuleManifest:
  project: app

Silverstripe\SiteConfig\SiteConfig:
  extensions:
    - CustomSiteConfig

SilverStripe\Admin\LeftAndMain:
  extra_requirements_css:
    - public/resources/admin/css/custom.css