我第一次尝试使用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
到
管理员/页/编辑/ EditForm / 7 /场/广告商/产品/新
以下是相关的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;
}
}
我需要你的建议来解决这个问题。
答案 0 :(得分:0)
这是一个非常奇怪的错误。
我做了一些实验并重命名了相关的课程。我发现问题只出现在第一个GridField构造函数参数 name 是以下之一:'Adv','Advert','Advertise','Advertiser'和'Advertisers'。在这个项目中,我还没有任何有这样名字的课程。对所有项目文件的全文搜索没有给出任何结果。
所以,我只是通过重命名参数来解决问题,但那是什么?