我正在使用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');
}
}
}
}
这里的错误信息: A PHP Error was encountered Severity: Notice Message: Undefined variable: msg Filename: views/signup.php Line Number: 99
<?php echo $msg; ?> // code inside view/signup.php
2 回答
它是's probably because you'重新进入此块并且你没有在这里设置
$data['msg']
所以在视图中它不存在:在方法的开头将
$data['msg']
初始化为null,或者在视图中检查它是否存在 .您正在加载视图而不传递任何变量,因此不会设置
$msg
.您需要将
isset($msg)
添加到视图(或$data['msg'] = ''
到控制器) .