我有一个页面,我想从数据库中显示一些结果,因此我在hook_preprocess_node中执行查询并将变量传递给twig模板。 查询工作正常,但只是第一次但在此之后页面被缓存所以我无法看到存储在数据库中的真实数据。 当我清除缓存时,一切正常,因为hook_preprocess_node再次执行。 我不想每次都清除缓存。 您认为问题是什么,即使我已禁用了twig缓存?
答案 0 :(得分:2)
如果您的查询结果取决于网址,则应在渲染数组中设置上下文
function themename_preprocess_node(&$variables) {
$variables['#cache']['contexts'][] = 'url';
或更具体的背景
function themename_preprocess_node(&$variables) {
$variables['#cache']['contexts'][] = 'url.path';
文档。 https://www.drupal.org/docs/8/api/cache-api/cache-contexts