我无法添加缓存上下文来为drupal 8中的实体工作。特别是我要使用headers:User-Agent。我在以下模块中尝试了多种变体。
use Drupal\node\NodeInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
function hook_entity_view_alter(&$build, EntityInterface $entity, EntityViewDisplayInterface $display){
if($entity->getType() == 'relevant_type'){
$build['#cache']['contexts'][] = 'headers:User-Agent';
}
}
我正在尝试在上下文更改时检查节点访问权限。我也在hook_entity_build_defaults_alter()
功能中尝试过。
请注意,缓存上下文不会影响用户具有的节点访问权限。缓存上下文只是在缓存数据时更改。
—
kiamlaluno
将对hook_node_access中设置的节点访问进行缓存。
—
ummdorian '16
那是一个不同的缓存容器,而不是用于内容的容器。
—
kiamlaluno