как программно можно поменять значение поля определенной ноды если известен uuid?

Главные вкладки

Аватар пользователя natalikarn natalikarn 31 октября 2020 в 15:37

Всем добра!i

Я только начала разбираться с запросами.
Создаю ноды программно, тип ноды известен, добавляю в ноды поле с uuid.

Вопрос.. как программно можно поменять значение одного поля определенной ноды если известен uuid, либо как получить nid ноды в переменную сразу-же при создании ноды программно.

Пишу что-то вроде этого запроса - не работает, мне нужно поменять значение поля 'field_status_value'

 $query = \Drupal::entityQuery('id_num')
      ->condition('field_uuid', $uuid);
    $query->set('field_status_value', "Успешно");
    $query->save();

Помогите исправить ошибку).

Лучший ответ

Комментарии

Аватар пользователя natalikarn natalikarn 31 октября 2020 в 19:34

как узнать entity_id в созданной, программно ноде в друпал 9 - Никто не знает?

Получается, что изменить поле в ноде можно только, если знаешь id ноды, но ведь когда она создается программно я его не могу никак перехватить в коде, не может быть, чтобы не было решения...

Аватар пользователя voviko voviko 31 октября 2020 в 19:47

неправильный подход у вас:

<?php
$entity_type
'node';
$nid 1223;
$entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load($nid);
$entity->set("field_status_value"'New value');
$entity->save();

//через uuid
$uuid 'f72fd04d-b455-4553-806c-3279ee0e8ff4';
$entity = \Drupal ::entityManager ()->loadEntityByUuid($entity_type$uuid);
?>