【发布时间】:2014-05-12 17:48:29
【问题描述】:
我使用 Codeigniter 和 Smarty 模板引擎。
我使用 Codeigniter 的表单验证库进行了表单验证。所以如果用户输入一些数据,我需要有一个方法来验证它。
如果表单通过验证,则视图中不应显示错误。
如果表单没有通过验证,我使用这行代码:$this->data['error_message'] = $this->form_validation->error_array();
存储发生了哪些错误。
所以,在我的模板中我这样做了:
<div id="cl-wrapper" class="login-container">
<div class="middle-login">
{if $error_message != ""}
<div class="alert alert-danger">
{foreach from=$error_message item=curr_id}
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<i class="fa fa-times-circle sign"></i><strong>Error!</strong> {$curr_id}<br/>
{/foreach}
</div>
{/if}
<div class="block-flat">
//some code
</div>
</div>
</div>
问题是如果表单验证成功,就会抛出一个 smarty 模板错误:
消息:未定义索引:error_message
文件名:sysplugins/smarty_internal_templatebase.php(151) : eval()'d code
行号:65
我想知道为什么,因为我之前在问 $error_message 里面是否有东西......
这在我之前没有发生过......在另一个项目中。
提前致谢。
J.
编辑 13/05/2014
我发现一个帖子here 有同样的问题。它说调试应该关闭。我检查了 Smarty.class.php 和变量 $debugging = false。所以现在我真的迷路了......
【问题讨论】:
-
调试是另一个选项。如果将其设置为 true,Smarty 会打开带有一些调试数据的新窗口,但不会影响显示警告
标签: html codeigniter validation debugging smarty