【问题标题】:Drupal 8 - How to programmatically create a node entity reference variable?Drupal 8 - 如何以编程方式创建节点实体引用变量?
【发布时间】:2017-01-20 09:38:02
【问题描述】:

如何在 Drupal 8 中以编程方式创建节点实体引用? 我有一个自定义表单,它创建一个“公司”节点,然后创建一个用户帐户,用户帐户有一个字段“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() 保存新创建的“公司”节点 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();

【问题讨论】:

    标签: drupal drupal-8


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2014-08-02
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 2016-03-19
      相关资源
      最近更新 更多