首页 文章

Codeigniter传递变量错误

提问于
浏览
0

我正在使用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 回答

  • 0

    它是's probably because you'重新进入此块并且你没有在这里设置 $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,或者在视图中检查它是否存在 .

  • 1
    if($this->form_validation->run() == FALSE)
    {
        $this->load->view('signup');
    }
    

    您正在加载视图而不传递任何变量,因此不会设置 $msg .

    您需要将 isset($msg) 添加到视图(或 $data['msg'] = '' 到控制器) .

相关问题