Drupal 8 - Как программно создать ссылочную переменную сущности узла?

Как программно создать ссылку на сущность узла в Drupal 8? У меня есть настраиваемая форма, которая создает узел «компания», а затем создает учетную запись пользователя, в учетной записи пользователя есть поле «field_company», которое является ссылкой на сущность, связывающуюся с узлом «компания». Итак, как мне сохранить мою недавно созданную ссылку на узел в поле field_company моих новых пользователей?

ссылка на объект field_company

http://pastebin.com/iX7yAaeY

Это не работает, как и $ pub_company или $ newCompanyNode-> id () сами по себе.

$user->set("field_company", $pub_company . ' ' . $newCompanyNode->id());

$ pub_company - название компании

$ newCompany - это полностью вновь созданный узел

$ newCompanyNode-> id () содержит идентификатор вновь созданного узла 'company'

$user = User::create();
$userEmail = $form_state->getValue('user_email');

// Generate Password
$password = user_password();

// Save User
$user->setPassword($password);
$user->enforceIsNew();
$user->setEmail($userEmail);
$user->setUsername($userEmail);
$user->set("field_firstname", $form_state->getValue('user_firstname'));
$user->set("field_lastname", $form_state->getValue('user_lastname'));
$user->set("field_company", $pub_company . ' ' . $newCompanyNode->id());
$user->activate();
$user->save();

person Community    schedule 20.01.2017    source источник


Ответы (1)


Нашел здесь решение, хотя оно немного другое и поэтому сначала сбивает с толку: https://drupal.stackexchange.com/questions/213379/programmatically-update-an-entity-reference-field

$user->field_company->entity = $newCompanyNode;
person Community    schedule 20.01.2017