Рейтинг:2

Как я могу указать тип отношения между двумя объектами?

флаг ye

Я новичок в Drupal

Пытаясь создать две сущности, Публиковать и Категория (Это для тестов)

А Публиковать может иметь один Категория, и Категория может иметь несколько Публиковать

Вот моя реализация поля ид_категории на Публиковать юридическое лицо:

  $fields['category_id'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('Категория'))
  ->setDescription(t('Имя связанной категории.'))
  ->setSetting('target_type', 'test_category')
  ->setSetting('обработчик', 'по умолчанию');

Мои вопросы:

  1. Есть ли способ определить тип отношения (в данном случае hasOne)
  2. Каково назначение обработчика? если кто-то может указать мне документацию, объясняющую, что мы можем делать с обработчиком в подобных ситуациях.
  3. На Категория сущность, Должен ли я ссылаться на Публиковать объект для получения сообщений категории, например.

Я использую Drupal 9.3, у меня фон Symfony.

leymannx avatar
флаг ne
Вам, вероятно, следует использовать термины таксономии для категорий. Уже встроено, что каждая страница термина показывает весь связанный с ней контент.
beta-developper avatar
флаг ye
Я полностью согласен. A Я сказал, что новичок в Drupal, и я пытаюсь понять основные концепции.
leymannx avatar
флаг ne
Я понимаю. Возможно, вы можете представить это как запрос к базе данных «получить все сообщения, для которых выбрана категория X». Для этого вам не нужно хранить сообщения в категории. Одного способа достаточно, чтобы впоследствии получить правильный результат в обоих направлениях.
Рейтинг:3
флаг cn
  1. Нет, ссылки на объекты не являются синонимами отношений с БД; по моему опыту, думать о них как таковых редко помогает.

  2. Это обработчик выбора сущности; плагин, который управляет тем, какие объекты доступны для добавления в экземпляр поля. Видеть https://www.axelerant.com/blog/writing-entity-reference-selection-plugin для примера.

  3. Вы могли бы, но в этом может не быть никакого смысла - поля не будут знать друг о друге или взаимодействовать друг с другом, поэтому вам придется разделять поля для одного и того же отношения, что просто неудобно. Представления имеют функцию обратной ссылки на сущность, поэтому в зависимости от требований необходимые вам функции могут уже быть там.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.