【发布时间】:2016-04-04 15:45:09
【问题描述】:
我正在尝试使用 GridField 来允许 CMS 用户将信息(邮件列表)添加到相同页面类型(节目)的文章中,但创建的每个新页面都已经填充了以前文章中的信息。
我认为这可能与我设置 Shows 页面类型和 Mailing List DataObject 之间关系的方式有关,但我无法弄清楚我需要为每个新的 show 页面做什么它是自己的空白 GridField,因为每个节目的邮件列表都不相同...
我在这两个文件上尝试了许多 $has_one、$has_many 和 $many_many 的组合,但没有任何东西可以按照我需要的方式工作,即每个 Show 页面都有自己的 GridField(邮件列表).. .
我现在的代码是:
Shows.php
private static $has_many = array(
'MailingLists' => 'MailingList'
);
...
$config = GridFieldConfig_RelationEditor::create();
$gridField = new GridField('MailingList',
'Shows Mailing List',
new DataList('MailingList'),
$config
);
$fields->addFieldsToTab('Root.Content.MailingList', array(
$gridField
));
MailingList.php
class MailingList extends DataObject {
private static $db = array(
'Title' => 'Varchar(25)',
'Description' => 'Varchar(55)'
);
private static $has_one = array(
'Shows' => 'Shows'
);
}
【问题讨论】:
标签: silverstripe