我已经成功创建了一个图库登录页面,该页面会将指定的子相册封面图像拉到自身。这在SS 4.2.1中可以完美地工作,然后我创建了一个新的SS 4.3.1,并复制了所有模板。除此图库外,其他所有东西都在工作。当我进入管理界面时,我可以单击图库页面,并且没有错误消息,但是当我单击子相册页面时,会出现以下错误:
[Emergency] Uncaught Error: Call to a member function scaffoldSearchField()
on string
GET /bubbleshop/admin/pages/edit/show/48
Line 2249 in /var/www/silverstripe/bubbleshop/vendor/silverstripe/framework/src/ORM/DataObject.php
Source
2240
2241 // Otherwise we have a bug
2242 } else {
2243 user_error("Bad value for searchable_fields,
'field' value: "
2244 . var_export($spec['field'], true),
E_USER_WARNING);
2245 }
2246
2247 // Otherwise, use the database field's scaffolder
2248 } elseif ($object = $this->relObject($fieldName)) {
2249 $field = $object->scaffoldSearchField();
2250 }
2251
2252 // Allow fields to opt out of search
2253 if (!$field) {
2254 continue;
2255 }
我设法识别出导致错误的代码。在私有静态$ summary_fields中,我有一个布尔值,下面将其转换为Yes或No,但我不确定如何解决它。
public function Cover(){
return ($this->Cover==true ? 'Yes' : ' ');
}
提前感谢您的光临。
最好的问候, 林恩
答案 0 :(得分:2)
我们可以使用Boolean
Nice
函数来返回一个不错的布尔值版本。使用以下内容,然后从您的班级中删除自定义Cover()
函数。
private static $summary_fields = [
'Cover.Nice',
];
private static $field_labels = [
'Cover.Nice' => 'Cover',
];