我第一次尝试使用GridField组件。我已经使用GridFieldConfig_RecordEditor添加了一个'Add‘按钮,如下所示:
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;
}
}
我需要你的建议,我应该看什么来解决这个问题。
发布于 2018-06-03 02:06:00
这是一个非常奇怪的bug。
我做了一些实验,并对相关类进行了重命名。我发现只有当第一个GridField构造器参数名称是以下参数之一时才会出现问题:'Adv','Advert',‘Advert’,'Advertiser‘和'Advertisers’。在这个项目中,我没有得到任何具有这样名称的类。对项目的所有文件进行全文搜索都没有给出任何结果。
所以,我仅仅通过重命名参数就解决了这个问题,但是这是什么呢?
https://stackoverflow.com/questions/50656528
复制相似问题