silverstrip Object->__call(): метод 'fortemplate' не существует в 'HasManyList' или метод не является общедоступным
Я получаю эту ошибку в шаблоне переднего плана, мой файл шаблона пуст, когда я пытаюсь addFieldToTab
, Я думаю $has_many
переменная имеет проблему.
Мой код как ниже:
class ProductsPage extends Page
{
private static $has_many = array (
'ProductCategories' => 'ProductCategories',
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', GridField::create(
'ProductCategories',
'Category',
$this->ProductCategories(),
GridFieldConfig_RecordEditor::create()
));
return $fields;
}
}
Ошибка:
[User Error] Uncaught Exception: Object -> __ call (): метод 'fortemplate' не существует в 'HasManyList' или метод не является общедоступным.
URL PasteBin: https://pastebin.com/YZJn3a4t
когда я удален $has_many
Переменная это работает идеально. в моем интерфейсе шаблон пуст.
как исправить эту ошибку я не понимаю?
1 ответ
Решение
Значение массива $has_many должно быть в единственном числе, а его ключ - во множественном числе.
В вашем примере это должно быть "Category" => "ProductCategories" (я понял это из того, что вы делаете с GridField ниже).
Надеюсь это поможет.