silverstripe Object->__call(): 方法 'fortemplate' 在 'HasManyList' 上不存在,或者方法不是 public
silverstrip Object->__call(): the method 'fortemplate' does not exist on 'HasManyList', or the method is not public
我在前端模板中遇到这个错误我的模板文件是空的,
当我尝试 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(): the method
'fortemplate' does not exist on 'HasManyList', or the method is not
public.
PasteBin URL : https://pastebin.com/YZJn3a4t
当我删除 $has_many
变量时,它工作得很好。在我的前端模板中是空的。
如何解决这个我不明白的错误?
$has_many数组value应该是单数形式,而key是复数形式。
使用您的示例,这应该是 'Category' => 'ProductCategories'(我从您对下面的 GridField 所做的操作中得到这个)。
希望对您有所帮助。
我在前端模板中遇到这个错误我的模板文件是空的,
当我尝试 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(): the method 'fortemplate' does not exist on 'HasManyList', or the method is not public.
PasteBin URL : https://pastebin.com/YZJn3a4t
当我删除 $has_many
变量时,它工作得很好。在我的前端模板中是空的。
如何解决这个我不明白的错误?
$has_many数组value应该是单数形式,而key是复数形式。
使用您的示例,这应该是 'Category' => 'ProductCategories'(我从您对下面的 GridField 所做的操作中得到这个)。
希望对您有所帮助。