0

我第一次尝试使用 GridField 组件。我使用 GridFieldConfig_RecordEditor 添加了一个“添加”按钮,如下所示:

class AdvertisersPage extends Page
{
    //...

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

        $advertiserAccounts = AdvertiserAccount::get();

        $fields->addFieldToTab('Root.Advertisers',
            $gridField = new GridField(
                'Advertisers',
                'All advertisers',
                $this->Advertisers(),
                GridFieldConfig_RecordEditor::create()
            )
        );

        return $fields;
    }
}

但是该按钮除了更改浏览器中的 URL 从

管理员/页面/编辑/显示/7

admin/pages/edit/EditForm/7/field/Advertisers/item/new

这是相关的 DataObject 类:

class AdvertiserAccount extends DataObject
{
    //...

    private static $has_one = [
        'AdvertisersPage' => AdvertisersPage::class,
    ];

    public function getCMSFields()
    {
        $fields = FieldList::create(
            TextField::create('contactNumber'),
            TextField::create('nickname')
        );

        return $fields;
    }
}

我需要你的建议,我应该如何解决这个问题。

4

1 回答 1

0

这是一个非常奇怪的错误。

我做了一些实验并重命名了相关类。我发现只有当第一个 GridField 构造函数参数名称是以下之一时才会出现问题:“Adv”、“Advert”、“Advertise”、“Advertiser”和“Advertisers”。在项目中,我没有任何具有此类名称的类。对所有项目文件的全文搜索没有给出任何结果。

所以,我只是通过重命名参数解决了这个问题,但那是什么?

于 2018-06-02T18:05:59.943 回答