0

2 時間以上、有線の問題に直面しています。私はそれを理解できませんでした。"errors"モデルからビューに変数を渡そうとしていますが、ページを読み込もうとすると、というエラーが表示されます"undefined variable: errors"。新しいユーザーを登録するための「登録」ページを作成しようとしています。ここに登録用のコントローラーがあります

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');
}

上記では、検証でエラーが発生した場合、エラーを $data['errors'] 配列に設定しました。ビューを以下に示します

<h2>Register User</h2>
<?php if($errors): ?>
<div style="background:red;color:white;">
<?php echo $errors; ?>
</div>
<?php endif; ?>

しかし、ブラウザで登録ページを開くと、エラーが表示されます"Undefined variable: errors"。誰かが私がどこで間違ったことをしたか教えてもらえますか?

4

1 に答える 1

2

ビューにデータを渡していません。2番目のパラメーターを使用して、ビューにデータを渡すことができます。

$this->load->view('header');
$this->load->view('register_user');
$this->load->view('footer');

あなたがしたい

$aData['errors']
$this->load->view('header', $aData);
$this->load->view('register_user', $aData);
$this->load->view('footer', $aData);

次に、あなたがあなたの見解にいるとき、あなたはすることができます

<h2>Register User</h2>
<?php if($errors): ?>
    <div style="background:red;color:white;">
        <?php echo $errors; ?>
    </div>
<?php endif; ?>
于 2013-07-09T16:13:19.123 に答える