Рейтинг:0

Как программно обновить поле ссылки на объект с несколькими значениями

флаг fr

У меня есть два типа содержимого узла наберите "А и тип_b У меня есть поле, называемое как field_author_profile в наберите "А которое является полем ссылки на объект для тип_b с неограниченной мощностью.

Как мне обновить field_author_profile программно.

Мне также нужно проверить, существует ли значение в поле, если оно существует, добавьте новое значение при обновлении значения поля или просто присвойте значение.

Я пробовал приведенные ниже варианты, но, похоже, ни один из них не работал.

$author_object->set('field_author_profile', $author_profile_nid);

$author_object->field_author_profile = ['target_id' => $author_profile_nid];

$author_object->field_author_profile->entity->target_id->value = $author_profile_nid;

$author_object->field_author_profile[] = ['target_id' => $author_profile_nid];

$author_object->field_author_profile->target_id = $author_profile_nid;

$author_object->get('field_author_profile')->setValue(['target_id' => $author_profile_nid]);

Сохранил узел после этого, используя

$author_object->сохранить();

Редактировать : значение поля не отображалось в форме редактирования узла, даже если оно присутствовало в базе данных. Это произошло из-за неправильного выбора типа пакета в поле ссылки на сущность. После исправления все заработало как положено.

Это было рабочее решение.

$author_object->field_author_profile[] = ['target_id' => $author_profile_nid];
miststudent2011 avatar
флаг fr
Связанное https://drupal.stackexchange.com/questions/213379/programmatically-update-an-entity-reference-field
флаг cn
Ваш 4-й пример является правильным. Кроме того, он единственный, кто не использует `field_author_profile`, что может быть проблемой.
miststudent2011 avatar
флаг fr
@Clive, спасибо за ответ. Это была опечатка, исправил.

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

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