即使我再次显式设置它,CodeIgniter也会缓存视图变量

时间:2011-05-17 04:46:23

标签: php caching codeigniter

我正在使用CodeIgniter PHP框架。我有一个简单的表单,它有一个$ editcode隐藏变量,可以在表单提交时发送。表单将数据提交给表单处理函数,然后再次使用表单重新显示视图,但$ editcode $变量更改为新值。

问题在于,无论我做什么,即使在提交表单并使用新的$ editcode变量重新绘制视图之后,$ editcode的值仍保持与原始值相同。

从我的视图中摘录,显示如何包含和提交$ editcode。

echo form_open('/add', $formattributes);
echo form_hidden('editcode', set_value('editcode', $editcode));
echo form_submit('submit','Submit!','id="submit"');

add()函数代码($ refreshed_editcode与生成的原始$ editcode正面不同)。

...
$data['editcode'] = $refreshed_editcode;
$this->load->view('includes/template', $data);

当add()函数重新绘制视图时,$ editcode值为$ refreshed_editcode,但它仍然是原始值。

我知道CodeIgniter为嵌套视图做了一些变量缓存,但是在这种情况下我明确地重新发送$ editcode变量的新值。是什么给了什么?

1 个答案:

答案 0 :(得分:1)

尝试摆脱对set_value的调用。由于表单字段是隐藏的,它实际上不应该给你带来太多好处,我怀疑这就是“缓存”发生的地方(如果我没弄错,那个函数是form_helpers文件的一部分,它实际上是设计的缓存以帮助重新填充数据,但自从我使用它以来已经有一段时间了。