Codeigniter 传递变量错误
Posted
技术标签:
【中文标题】Codeigniter 传递变量错误【英文标题】:Codeigniter passing variable error 【发布时间】:2012-03-02 19:28:12 【问题描述】:我正在使用 CodeIgniter,但在使用 $this->load->view('signup',$data)。
这是我控制器中的一些代码。
function create_member()
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
$this->form_validation->set_rules('password1', 'Confirm Password', 'trim|required|matches[password]');
if($this->form_validation->run() == FALSE)
$this->load->view('signup');
else
$this->load->model('membership');
if($query=$this->membership->check_username() == TRUE)
$data['msg']= "Username exist";
$this->load->view('signup',$data); //problem encounter here.
else
if($query = $this->membership->create_member())
$data['main_content'] = 'signup_successful';
$this->load->view('include/template', $data);
else
$this->load->view('signup_form');
这里是错误信息: 遇到 PHP 错误 严重性:通知 消息:未定义变量:msg 文件名:views/signup.php 行号:99
<?php echo $msg; ?> // code inside view/signup.php
【问题讨论】:
【参考方案1】:这可能是因为您的代码正在进入此块并且您没有在此处设置$data['msg']
,因此在视图中它不存在。:
else
if($query = $this->membership->create_member())
$data['main_content'] = 'signup_successful';
$this->load->view('include/template', $data);
else
$this->load->view('signup_form');
要么在方法的开头将$data['msg']
初始化为 null,要么在视图中检查它是否存在。
【讨论】:
谢谢,你是对的,我必须在开头初始化 $data['msg'] 为 null :)【参考方案2】:if($this->form_validation->run() == FALSE)
$this->load->view('signup');
您正在加载视图而不传递任何变量,因此不会设置 $msg
。
您需要将isset($msg)
添加到视图(或将$data['msg'] = ''
添加到控制器)。
【讨论】:
以上是关于Codeigniter 传递变量错误的主要内容,如果未能解决你的问题,请参考以下文章