У меня есть два типа содержимого узла наберите "А
и тип_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];