首先我使用的是SilverStripe 2.4.7版.我正在使用的DataObject与DataObjectManager和另一个DataObject之间有一个has_one关系.我想在DataObjectManager的摘要字段中显示DataObject的名称,但我不断收到以下错误.
未捕获的异常:对象 - > __ call():"存储"上不存在'fortemplate'方法
我认为这是因为我有一个has_one关系,但我不确定.有没有人对我如何做到这一点有任何建议?
谢谢
您收到该错误是因为"存储",在摘要字段中返回Store对象.摘要字段不太清楚如何处理对象,因此它会检查它是否具有"forTemplate"方法,该方法通常会返回使用模板或纯字符串呈现的对象.
这有两个选择:
1)在Store对象上创建forTemplate()方法,该对象返回Store的Title(或任何你想要的字段).
要么
2)在具有DataObjectManager字段的对象上,创建一个返回Store标题的getter方法.即..
public function getStoreTitle(){
return $this->Store()->Title
}
Run Code Online (Sandbox Code Playgroud)
然后在summary_fields中引用该方法即...
public static $summary_fields = array(
'StoreTitle'
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2161 次 |
| 最近记录: |