У меня есть узел (например, бизнес-"компания") с полем, на которое ссылается абзац (предположим, бизнес-"сектор" с несколькими полями). Этот абзац имеет в своих полях ссылку на другой абзац (предположим, «сотрудник» с несколькими полями, одно из которых является ссылкой на термин таксономии).
В крючок_form_submit()
, с $форма
и FormStateИнтерфейс $form_state
в качестве параметров мне нужно программно связать абзац нескольких сотрудников с абзацем сектора.
...
$node = Node::load($id);
$sector = Paragraph::load($node->get('field_sector')->target_id);
/**
* Список терминов таксономии загружен в другом месте.
* Я добавил пользовательский элемент в выборку с сотрудниками "_all"
* чтобы программно связать всех сотрудников с $sector.
*
* массив @var $employees
*/
foreach ($employees как $employee) {
$абзац = абзац::создать([
'тип' => 'сотрудник',
]);
$paragraph->set('field_name', $employee->get('field_name')->value);
$paragraph->set('field_age', $employee->get('field_age')->value);
...
$абзац->сохранить();
$sector->set('field_employee', $paragraph); // здесь я не знаю, как добавить к сектору
$сектор->сохранить();
}
Я попытался связать каждого сотрудника $ с сектором $, но с $sector->set('field_employee', $paragraph);
синтаксис или с $sector->appendItem($paragraph)
, который работает для узлов, он не работает.
Есть ли способ программно добавить один абзац к другому?
Визуализируя вопрос на изображении ниже, когда я сохраняю объект с настраиваемой опцией «Все сотрудники» (_все
) выбран, я хотел бы прикрепить все 4 сотрудника абзаца, связанные с абзацем «выбранный сектор» (удаление _все
).
Заранее спасибо.
РЕДАКТИРОВАТЬ 1
Я видел предложенный ответ Программно добавить несколько абзацев в поле ссылки на сущность на узле но он решает, как прикрепить абзац к $узел
, а не абзац к абзацу $узел
.
Я пробовал также это:
$employee->setParentEntity($sector, 'field_of_reference');
$сотрудник->сохранить();
но все равно не добавляет $сотрудник
к $сектор
.
РЕДАКТИРОВАТЬ 2
Я пытаюсь следовать предложенным сообщениям, но не могу понять, как адаптировать этот код внутри крючок_form_submit()
.
В любом случае спасибо всем, я думаю, что это плохая конструкция моего кода.