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 ниже).

Надеюсь это поможет.

Другие вопросы по тегам