【发布时间】:2019-02-22 21:53:47
【问题描述】:
我已经成功创建了一个画廊登陆页面,该页面将指定的子专辑封面图片拉到自身。这在 SS 4.2.1 中完美运行然后我创建了一个新的 SS 4.3.1 并复制了所有模板。除了这个画廊,一切都在工作。当我在管理界面中时,我可以单击图库页面并且没有错误消息,但是当我单击子 AlbumPage 页面时,我收到以下错误:
[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 中,我有一个布尔值,下面将其转换为是或否,但我不知道如何修复它。
public function Cover(){
return ($this->Cover==true ? 'Yes' : ' ');
}
提前感谢您查看。
最好的问候, 林恩
【问题讨论】:
-
在 Silverstripe 升级后我遇到了同样的错误。您如何确定导致问题的确切代码?
-
我用最新的 SS 构建了一个新实例。然后我慢慢开始迁移我的模板,看看哪些有效,哪些无效。然后,画廊。我的克星。我不知道为什么会发生这个错误,所以我开始将每个元素重建到我的模板中,确保它在继续之前工作,然后最后一段代码导致了错误。一旦我删除它,一切都按预期工作。花了几个小时。我希望这对你也有帮助。干杯!
标签: php silverstripe silverstripe-4