Получите разные поля модели CMS, добавьте их на вкладку CMS

Как в администраторе модели Silverstripe (версия 3) получить набор полей из модели разные, чтобы добавить их в администратор этой модели?

Я пробовал это, используя Филдлист:: аддфиелдстотаб:

$loremIpsumTab = Tab::create('LoremIpsum');
$fields->fieldByName('Root')->insertAfter('Main', $loremIpsumTab);

$loremIpsumFields = (
    $this->LoremIpsum()->getCMSFields()
        ->fieldByName('Root.Main')->Fields());

$fields->addFieldsToTab('Root.LoremIpsum', $loremIpsumFields);

Это создает вкладку правильно, но перемещает поля неправильно: все перемещаются поля из 'Root.Main', а не только для модели LoremIpsum.

Я предполагал, что это будет запрашивать связанную модель LoremIpsum для ее полей CMS:

    $this->LoremIpsum()->getCMSFields()
        ->fieldByName('Root.Main')->Fields()

Итак, как я могу переместить Только эти поля для модели LoremIpsum?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Здравствуйте и добро пожаловать в StackOverflow. Чего вы хотите достичь?

Кажется, вы хотите отредактировать объект данных отношения has_one из другого вашего объекта данных. Для этого сценария есть готовые и протестированные модули, например. https://github.com/stevie-mayhew/hasoneedit/tree/3.x , потому что даже если вам удастся отобразить поля, SilverStripe предполагает, что эти значения принадлежат текущей модели, а не отношению. Тогда у вас будет дополнительная работа, чтобы сохранить его обратно и т. д.

Некоторые поля в вашей текущей модели и в модели LoremIpsum имеют одно и то же имя, например. ID, Название, Создан. Это вызывает проблемы в вашем коде выше, потому что вы можете иметь только одно поле, например. ID в форме.

Модуль «hasoneedit» решает эту проблему, добавляя префикс к полям отношения.

Я надеялся, что у Silverstripe уже есть способ запросить это без дополнительной зависимости. Спасибо за ответ.

benf_portable 15.03.2019 05:39

Что ж, SS не является большой монолитной CMS, но ее можно легко расширить, если готовых решений недостаточно для ваших нужд. Вот почему у него много точек расширения.

wmk 18.03.2019 09:30

Другие вопросы по теме