Есть ли способ добавить пользовательский «ответ» для логических сводных полей в администраторе модели Silverstripe? - PullRequest
0 голосов
/ 18 января 2019

Я хочу, чтобы мои логические значения давали более дружелюбный ответ, чем истина / ложь. Я видел, что я могу делать Boolan.Nice, но это даст мне да / нет.

Я использовал:

 class AboutusGallery extends DataObject{
 private static $db = [
    'Description' => 'Varchar',
    'ShowOnHomePage'=> 'Boolean',
];

private static $owns = [
    'Picture'
];
private static $has_one = [
    'Picture' => Image::class,
    'HomePage' => HomePage::class,
];

private static $summary_fields = [
    'Thumbnail' => 'Immagine',
    'Description' => 'Descrizione',
    /* THIS WORKS*/
    'ShowOnHomePageITA' => 'In primo piano',
];

public function ShowOnHomePageITA(){
   return $this->ShowOnHomePage ? 'Si' : 'No';
}

ShowOnHomePageITA работает и делает то, что я ищу. Но когда я делаю то же самое в моей модели администратора, он тормозит.

Вот что я делаю:

class PageLink extends DataObject {
private static $db = [
    'SortOrder' => 'Int',   
    'Description' => 'Varchar',
    'PageLink' => 'Varchar',
    'ShowOnHeader'=> 'Boolean',
];
private static $has_one = [
    'HomePage' => HomePage::class,
];

private static $summary_fields = [
    'Description',
    /* this does NOT work*/
    'MostraNelHeaderITA' => 'Header',
];

public function MostraNelHeaderITA(){
   return $this->ShowOnHeader ? 'Si' : 'No';
}

Я также безуспешно пытался выполнить кастинг или даже изменить Булеву на varchar.

Когда я пытаюсь разработать / создать или очистить проект, я получаю следующее:

(!) Неустранимая ошибка: вызов функции-члена scaffoldSearchField () включен строка в D: \ Programmazione \ WebSites \ Pediatra \ поставщика \ SilverStripe \ рамки \ SRC \ ORM \ DataObject.php по линии 2227

Так что мне интересно, делаю ли я что-то неправильно или это нельзя сделать на модели администратора. Так как он работает везде, кроме администраторов моделей.

1 Ответ

0 голосов
/ 18 января 2019

Я думаю, что ваша проблема в том, что часть вашего массива сводных полей имеет только значение, а другая - ключ и значение. Попробуйте изменить это:

-     'Descrizione',
+     'Description' => 'Descrizione',
...