Drupal 8 - 如何以编程方式创建节点实体引用变量?

时间:2017-01-20 09:38:03

标签: drupal drupal-8

如何在Drupal 8中编写节点实体引用程序? 我有一个自定义表单,可以创建一个'公司'节点然后创建一个用户帐户,该用户帐户有一个字段' field_company'这是一个链接到节点'公司'的实体参考。那么如何在新用户' field_company'中保存新创建的节点引用?场?

field_company entity reference

http://pastebin.com/iX7yAaeY

这不起作用,$ pub_company或$ newCompanyNode-> id()也不起作用。

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

$ pub_company是公司名称

$ newCompany是全新创建的节点

$ newCompanyNode-> id()包含新创建的'公司'节点ID

$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();

1 个答案:

答案 0 :(得分:2)

在这里找到解决方案,虽然有点不同,因此最初令人困惑:https://drupal.stackexchange.com/questions/213379/programmatically-update-an-entity-reference-field

$user->field_company->entity = $newCompanyNode;