Я столкнулся с проводной проблемой более 2 часов. Я не мог понять. Я пытаюсь передать переменную "errors"
из модели для просмотра, но когда я пытаюсь загрузить страницу, она показывает ошибку, говорящую "undefined variable: errors"
. Я пытаюсь создать страницу «register» для регистрации новых пользователей. Вот мой контроллер для регистраОшибка при передаче данных с контроллера для просмотра Codeigniter
function register(){
if($_POST){
$config = array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'trim|required|min_length[3]|is_unique[users.username]'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'trim|required|min_length[5]'
),
array(
'field' => 'password2',
'label' => 'Password Confirm',
'rules' => 'trim|required|min_length[5]|matches[password]'
),
array(
'field' => 'user_type',
'label' => 'User Type',
'rules' => 'required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'trim|required|is_unique[users.email]|valid_email'
)
);
$this->load->library('form_validation');
$this->form_validation->set_rules($config);
if($this->form_validation->run() == FALSE){
$data['errors'] = validation_errors();
}else{
$data_array = array(
'username' => $_POST['username'],
'password' => sha1($_POST['password']),
'email' => $_POST['email'],
'user_type' => $_POST['user_type']
);
$this->load->model('user');
$userid = $this->user->create_user($data_array);
$this->session->set_userdata('userID', $userid);
$this->session->set_userdata('user_type',$_POST['user_type']);
redirect(base_url().'index.php/posts');
}
}
$this->load->helper('form');
$this->load->view('header');
$this->load->view('register_user');
$this->load->view('footer');
}
В выше, когда есть ошибка в проверке я установил ошибку в $ данных [ «ошибки»] массив. мнение приводится ниже
<h2>Register User</h2>
<?php if($errors): ?>
<div style="background:red;color:white;">
<?php echo $errors; ?>
</div>
<?php endif; ?>
Но когда я открываю страницу регистра в браузере, она показывает ошибку говоря "Undefined variable: errors"
. Может ли кто-нибудь сказать мне, где я сделал ошибку?
Вам нужно передать массив в '$ this-> load-> view' в качестве второго параметра. CodeIgniter берет ключи из этого массива и делает их переменными в файле вида. Удостоверьтесь, что '$ errors' установлен, прежде чем пытаться повторить его. –