В Silverstripe 4 стандартная кнопка «Добавить» GridField ничего не делает - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь использовать компонент GridField впервые.Я добавил кнопку «Добавить», используя GridFieldConfig_RecordEditor, следующим образом:

class AdvertisersPage extends Page
{
    //...

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();

        $advertiserAccounts = AdvertiserAccount::get();

        $fields->addFieldToTab('Root.Advertisers',
            $gridField = new GridField(
                'Advertisers',
                'All advertisers',
                $this->Advertisers(),
                GridFieldConfig_RecordEditor::create()
            )
        );

        return $fields;
    }
}

Но кнопка ничего не делает, кроме изменения URL-адреса в браузере с

admin /страницы / редактировать / показывать / 7

до

admin / pages / edit / EditForm / 7 / поле / рекламодатели / элемент / новый

Вот соответствующий класс DataObject:

class AdvertiserAccount extends DataObject
{
    //...

    private static $has_one = [
        'AdvertisersPage' => AdvertisersPage::class,
    ];

    public function getCMSFields()
    {
        $fields = FieldList::create(
            TextField::create('contactNumber'),
            TextField::create('nickname')
        );

        return $fields;
    }
}

Мне нужен ваш совет по поводу того, на что мне обратить внимание, чтобы решить проблему.

1 Ответ

0 голосов
/ 02 июня 2018

Это очень странная ошибка.

Я провел несколько экспериментов и переименовал соответствующие классы.Я обнаружил, что проблема возникает только тогда, когда первый параметр конструктора GridField name является одним из следующих: «Adv», «Advert», «Advertise», «Advertiser» и «Advertisers».В проекте у меня нет классов с такими именами.Полнотекстовый поиск по всем файлам проекта не дал никаких результатов.

Итак, я решил проблему, просто переименовав параметр, но что это было?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...