2017-02-10 2 views
0

У меня есть страница, где я хочу показать некоторые результаты из базы данных, поэтому я выполняю запрос в hook_preprocess_node и передаю переменную в шаблон ветви. запрос работает нормально, но только в первый раз, но после этого страница получает кеширование. Поэтому я не вижу реальных данных, хранящихся в db. Когда я очищаю кеш, все работает нормально, потому что hook_preprocess_node выполняется снова. Я не хочу очищать кеш каждый раз. Как вы думаете, проблема в том, что я отключил кеш-ключ?preprocess_node вводится только в первый раз

ответ

1

Если результат запроса зависит от URL, вы должны установить контекст рендеринга массива

function themename_preprocess_node(&$variables) { 
    $variables['#cache']['contexts'][] = 'url'; 

или более конкретном контексте

function themename_preprocess_node(&$variables) { 
    $variables['#cache']['contexts'][] = 'url.path'; 

Docs. https://www.drupal.org/docs/8/api/cache-api/cache-contexts

+0

i добавление переменных $ ['# cache'] ['max-age'] = 0; работайте – khodadadi

Смежные вопросы