SilverStripe 4.3.1 - преобразовать логическое значение по умолчанию в Да или Нет из SS 4.2.1 - PullRequest
0 голосов
/ 23 февраля 2019

Я успешно создал целевую страницу галереи, которая перетягивает на себя указанное изображение обложки дочернего альбома.Это прекрасно работает в 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' : ' ');
    }

Заранее спасибо, что заглянули.

С уважением, Лин

1 Ответ

0 голосов
/ 25 февраля 2019

Мы можем использовать функцию Boolean Nice, чтобы вернуть уже симпатичную версию логического значения.Используйте следующее и удалите пользовательскую функцию Cover() из своего класса.

private static $summary_fields = [
    'Cover.Nice',
];

private static $field_labels = [
    'Cover.Nice' => 'Cover',
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...