我有一个用于登录表单的控制器。在视图中,我有一个{ error }变量,当出现错误时,我希望使用解析器lib来填充该变量。我的控制器中有一个index()函数,它由数组$init控制,它将一些基本变量和错误消息设置为'':
function index()
{
$init = array(
'base_url' => base_url(),
'title' => 'Login',
'error' => ''
);
$this->parser->parse('include/header', $init);
$this->parser->parse('login/index', $init);
$this->parser->parse('include/footer', $init);
} 在我的登录脚本的末尾,我有以下内容:
if { // query successful }
else
{
$init['error'] = "fail";
$this->parser->parse('login/index', $init);
}当然,这是行不通的。首先,它只加载索引视图,没有页眉和页脚,并且无法将原始的$init‘’error‘设置为(在本例中) "fail“。我试着调用$this->index(),可能是以数组作为参数,但我似乎不知道如何传递一个新的$init‘’error‘来覆盖原来的$init’‘error’。实际上,在输入这段代码时,似乎不可能做我想做的事情,因为原始值总是覆盖任何新的值。因为我将其声明为nothing ('')。
那么,有没有办法把我的错误信息放进去呢?如果是这样的话,是如何做到的。如果没有,我该如何在正确的位置获得错误消息呢?(我的视图:{error}。我尝试过使用'global‘来绕过变量作用域,但是这失败了。在此之前非常感谢。
发布于 2011-04-04 06:49:55
在生成视图之前,必须修改$init。
要加载页眉和页脚,可以在视图中包含以下命令和页脚的等价物。
<?php $this->load->view('_header'); ?>要显示错误,您也可以使用validation_errors()
如果您使用的是codeigniter窗体验证。
如果将datamapper orm用于codeigniter,则可以编写模型验证,如果查询因违反验证规则而失败,则在模型的->error属性中会显示正确的错误消息。
模型的代码:
var $validation = array(
'user_name' => array(
'rules' => array('required', 'max_length' => 120),
'label' => 'Name'
)
);发布于 2014-07-13 05:15:10
你可以试试这个:
function index() {
$init = array(
'base_url' => base_url(),
'title' => 'Login',
'error' => ''
);
$string = $this->parser->parse('include/header', $init, TRUE);
$string .= $this->parser->parse('login/index', $init, TRUE);
$string .= $this->parser->parse('include/footer', $init, TRUE);
$this->parser->parse_string(string);
}在parse()中,当您希望返回数据而不是(立即)发送到输出类时,可以将TRUE (布尔值)传递给第三个参数。另一方面,方法parse_string的工作原理与` `parse()完全一样,它只接受字符串作为第一个参数,而不是视图文件,因此它是协同工作的。
https://stackoverflow.com/questions/5533006
复制相似问题