Я пытаюсь использовать GridField, чтобы пользователи CMS могли добавлять информацию (списки рассылки) к статье того же типа (Показывает), но каждая новая страница, которая была создана, уже заполнена информацией из предыдущих статей.Новый элемент GridField на каждой странице - SilverStripe
Я думаю, что это может иметь какое-то отношение к тому, как я установил отношения между типом страницы «Показания» и «Объект данных рассылки», но я не могу понять, что мне нужно сделать для каждой новой страницы показа у меня есть собственный пустой GridField, поскольку список рассылки не одинаковый для каждого шоу ...
Я пробовал много комбинаций $ has_one, $ has_many & $ many_many по двум файлам, но ничего не получается, чтобы работать Мне нужно, чтобы на каждой странице просмотра был собственный 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'
);
}
Oh. Мои. Бог! Я попробовал это на днях и получил ошибку сервера, поэтому я вернулся к использованию нового DataList() ... Не могли бы вы объяснить, почему он работал на этот раз? Связана ли $ this-> MailingLists() с битом $ has_many? Спасибо за помощь :) – Freemium
Да '$ this-> MailingLists()' ссылается на отношения '$ has_many' MailingLists'. – 3dgoo
Полезно знать, я, должно быть, попытался использовать '$ this-> MailingLists()', в то время как у меня было отношение, заданное как '$ has_one', поэтому для меня это не сработало, и я предположил, что это не то, что выпуск был. Спасибо за очистку, что до – Freemium