有没有办法在 silverstripe 表单字段周围添加包装器 div

Is there a way to add a wrapper div around a silverstripe form field

有没有办法在 silverstripe 表单中的标签字段或任何其他类型的表单字段周围添加包装器? 以这种方式设置表单样式会更容易。

FieldList::create(
    LabelField::create('label','Label'),
    EmailField::create('Email',''),
    TextareaField::create('Comment','')
)

是的,根据文档,您可以为每个表单或每个字段设置一个模板,see docs.

$field = TextField::create(..);
$field->setTemplate('MyCustomTextField');

如果模板位于主题 /templates/ 目录的子文件夹中,则需要设置模板的完整路径。

如果您需要全局更改模板,您可以在主题中覆盖它们。 LabelField 的模板位于 templates/SilverStripe/Forms/LabelField.ss

  1. 在您的主题中放置一个具有相同路径的文件(例如 themes/mytheme/templates/SilverStripe/Forms/LabelField.ss),

  2. 刷新您的 Silverstripe 缓存(例如通过将 ?flush 添加到 URL 来 运行 刷新)以便 Silverstripe 可以找到新的 模板文件,

  3. 并开始试验您的自定义标记。

只有在添加新模板文件时才需要刷新,系统会自动检测现有文件的更新。