Codeigniter, передающий ошибку переменной - PullRequest
0 голосов
/ 02 марта 2012

Я использую CodeIgniter и у меня проблема с отправкой переменной $ this-> load-> Вид ( 'Регистрация', $ данных) .

Это код моего контроллера.

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

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Вероятно, это потому, что ваш код входит в этот блок и вы не устанавливаете здесь $data['msg'], поэтому в представлении его не существует.* обнулить в начале вашего метода, или проверить в представлении, чтобы увидеть, существует ли он.

0 голосов
/ 03 марта 2012
if($this->form_validation->run() == FALSE)
{
    $this->load->view('signup');
}

Вы загружаете представление без передачи переменных, поэтому $msg не будет установлено.

Вам необходимо добавить isset($msg) к представлению (или $data['msg'] = '' к контроллеру).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...