【问题标题】:Custom fields not appearing自定义字段未出现
【发布时间】:2026-01-21 05:15:01
【问题描述】:

我正在尝试在 CMS 中向我的页面添加一些自定义字段,但这些字段没有出现。

我已经运行了dev/build,但它们仍然没有出现。

为什么我的自定义字段没有出现在 CMS 中?

<?php

class FieldPage extends Page {

    private static $db = array (
        'Field1' => 'Varchar(32)',
        'Field2' => 'Varchar(32)'
    );

    public function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Main', TextField::create('Field1', 'Field 1'));
        $fields->addFieldToTab('Root.Main', TextField::create('Field2', 'Field 2'));

        return $fields;
    }
}

class FieldPage_Contoller extends Page_Controller {

}

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    那么,您是否也在dev/build 之前或之前冲洗过? dev/build 是否以消息“数据库构建完成!”结尾?在该页面的最底部向下滚动!

    您能否确认在您的数据库中创建了一个带有您的类名的新表(在您的示例中为 FieldPage),其中包含数据库字段?

    如果是,您仍然需要通过点击“添加新页面”按钮将“FieldPage”添加到您的 CMS。然后应该会出现这些字段。

    dev/build 如果您的代码中有任何 php 错误,则会中断,那么数据库不会根据您的需要进行更改。粘贴的代码看起来不错,但它可能是任何其他类中的 php 错误。所以检查 dev/build 是否以正确的消息结束。

    【讨论】:

    • 感谢 wmk,您总是乐于助人,就像您说的那样,出现了某种 php 错误。
    最近更新 更多