Установите значение поля списка узла с несколькими значениями


Я пытаюсь программно сгенерировать узлы пользовательского типа контента из плагина формы. Для большинства областей у меня вообще нет никаких проблем. Например, для поля заголовка я могу установить значение примерно так.

$node->title->value = t('My title');
$node->save();

Однако существует также поле списка (текстовое), которое допускает несколько значений. И я не уверен, как сохранить значения поля с несколькими значениями. Я предполагаю, что если бы было разрешено только одно значение, я мог бы сделать это так же, как я установил заголовок в предыдущий пример, но как мне с ним справиться, если поле представляет собой массив? В качестве теста я выполнил инструкцию die для поля на узле, у которого уже были значения в этом поле, чтобы посмотреть, как оно выглядит, и было сгенерировано следующее:

Array ( [0] => Array ( [value] => test_3 ) [1] => Array ( [value] => test_4 ) ) 1

Но я не уверен, что с этим делать. Как бы я установил значение поля поля списка с несколькими разрешенными значениями?

Author: Matt, 2016-12-23

1 answers

Вы можете заменить полное содержимое поля, назначив массив:

$node->field_multivalue = [
  ['value' => '1'],
  ['value' => '2'],
  ['value' => '3'],
];

Если вы хотите добавить в поле другое значение, вы можете использовать это поле как массив php:

$node->field_multivalue[] = ['value' => '4'];

Вы можете опустить основное свойство поля:

$node->field_multivalue[] = '5';

Теперь у вас есть 5 значений в поле.

 9
Author: 4k4, 2016-12-23 19:54:44