Программно заменить значение поля ноды.

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

Аватар пользователя Im Im 13 мая 2020 в 17:10

Всем привет!

Подскажите, какой путь правильный в drupal? Скрипт из модуля обрабатывает некую информацию и нужно это информацию записать в конкретную ноду, есть два известных мне способа, первый это загрузить сущность по id, заменить поле, и потом сохранить сущность->save(), второй, это обновить данные поля прямиком в базе через db_update. В первом варианте у меня вываливается ошибка пишет ->save() неизвестный класс, во втором варианте, значение в базу вносится, но в поле не обновляется пока не скинешь кеш.

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

Лучший ответ

Комментарии

Аватар пользователя marassa marassa 13 мая 2020 в 17:17

Im wrote: какой путь правильный в drupal? Скрипт из модуля обрабатывает некую информацию и нужно это информацию записать в конкретную ноду, есть два известных мне способа, первый это загрузить сущность по id, заменить поле, и потом сохранить сущность->save(), второй, это обновить данные поля прямиком в базе через db_update

Естественно первый.

Im wrote: В первом варианте у меня вываливается ошибка пишет ->save() неизвестный класс

А у меня не вываливается.

Im wrote: Как программно и грамотно можно заменить значение поля ноды?

Грамотно написать правильный код. Трудно указать на ошибку, не видя кода.

Аватар пользователя Im Im 13 мая 2020 в 18:15

спасибо за отклик!

вот кусок:

$translation=node_load($id_translation);

$translation->field_pool_email['und'][0]['value']  .=  ", " . $mail_access;
$translation->save();

и ловлю это:
PHP Fatal error: Call to undefined method stdClass::save() in ...