【发布时间】:2010-12-28 15:35:05
【问题描述】:
我有一个模块,我正在使用 node_load(array('nid' => arg(1)));
现在的问题是这个函数不断从数据库缓存中获取 node_load 的数据。
如何强制此函数不使用数据库缓存?
示例
我的链接是http://mydomain.com/node/344983
现在:
$node=node_load(array('nid'=>arg(1)),null,true);
回声 $node->nid 。 " -- " arg(1);
输出
435632 -- 435632
这是一个随机的节点 ID(在系统上可用)
每次我 ctrl+F5 我的浏览器我都会得到新的nid!
感谢您的帮助
【问题讨论】:
-
如果这是在一个模块中,请发布您的 _menu 钩子
-
函数 custom_node_menu(){ $items = array(); $items['node'] = array ('title' => 'node', 'page callback' => 'drupal_not_found', 'access callback' => TRUE, 'type' => MENU_CALLBACK, );返回$项目; }
-
node_load(arg(1))是否显示类似问题?print arg(1)输出什么?您是否有可能为匿名用户启用了缓存,而您只是看到页面的早期输出? -
上面写的是 (435632),,, 问题是 arg(1) 得到不正确的值... node_load 使用 $reset=true 时没有任何问题 但问题是使用 arg api 本身!!!我不知道为什么它的值不正确!!
-
我非常怀疑问题出在
arg()本身,否则 Drupal 将完全停止运行。请参阅我关于缓存的编辑 - 尝试使用devel.module清除缓存。