Вы здесь

Повторный вызов node_load_multiple() не выполняет запрос к базе

1

Кастомно вывожу на странице несколько форм.
После сабмита формы данные в ней должны обновляться.
Но этого не происходит. дебаг показал, что node_load_multiple() не делает новый запрос.

 $nodes = node_load_multiple(array(), array('type' => 'to_do', 'status' => 1));

в $nodes остаются старые данные. Пока не скину принудительно кэши.

Версия Drupal: 
7.x
Категория: 
Database APIForm API
Вопрос задан 10.12.2015 - 17:55

мне Cache Exclude советовали. Его поставил, нужные страницы в исключения вкинул.. не помогло

зы. Посмотрел про какой ты модуль говоришь. ТОчно не стоит.

Комментарий оставлен 10.12.2015 - 18:35

ты посамбиту форму сохраняешь, а потом тебе надо новые данные пользователю показать?

Комментарий оставлен 11.12.2015 - 08:36

Да. По сабмиту - измененные данные пишутся в БД, а потом эти данные должны показаться юзеру. И учитываться в новом сабмите формы.

Комментарий оставлен 11.12.2015 - 10:44

Она корректно сохранит изменения со всеми нужными друпаловскими нюансами: запомнит дату изменения, вызовет хуки, сохранит лог, очистит кеш и т. д.

Комментарий оставлен 11.12.2015 - 19:20

ага. уже рассказали. Не думал, что с нодами так все сложно замучено. ))
Спасибо за подсказку

Комментарий оставлен 12.12.2015 - 22:55

Ответы

1

node_load_multiple по умолчанию кеширует результат

https://api.drupal.org/api/drupal/modules!node!node.module/function/node...

node_load_multiple($nids = array(), $conditions = array(), $reset = FALSE)

$reset: Whether to reset the internal node_load cache.

правильный код в Вашем случае

 $nodes = node_load_multiple(array(), array('type' => 'to_do', 'status' => 1), TRUE);
Ответ дан 10.12.2015 - 21:13

Спасибо, буду знать про сей момент.
Но не помогло о_О
Может быть связанным с работой самих форм? На странице только формы.
Хотя, node_load_multiple вызывается в самом начале, и работы самих форм вроде никак не касается.

Комментарий оставлен 10.12.2015 - 21:49