0

以下の行を使用してユーザー追加フォームをチェックし、データベースに電子メール アドレスが存在しないかどうかを確認しています。正常に動作しているように感じますが、エラー メッセージが表示されません。

$this->form_validation->set_rules('userEmail','E-Mail', 'required|valid_email|trim|max_length[99]|xss_clean|is_unique[users.email]');

私の見解では、<?php echo validation_errors(); ?>

私のコントローラーは以下のようにフォーマットされています:

if($this->form_validation->run() === TRUE)
        {
            $userData = array(
                'fName' => $this->input->post('userFirstName', TRUE),
                'lName' => $this->input->post('userLastName', TRUE),
                'email' => $this->input->post('userEmail', TRUE),
                'password' => sha1($this->input->post('userPassword', TRUE))
            );  

            $this->db->escape($userData);
            $this->user_model->addUser($userData);
        }
4

3 に答える 3

1

コントローラーを次のように変更しました。

$this->form_validation->set_rules('userEmail','E-Mail', 'required|valid_email|trim|max_length[99]|xss_clean|is_unique[users.email]');
        $this->form_validation->set_rules('userPassword','Password', 'required|trim|max_length[99]|xss_clean');

        if($this->form_validation->run() === TRUE)
            {
                $userData = array(
                    'fName' => $this->input->post('userFirstName', TRUE),
                    'lName' => $this->input->post('userLastName', TRUE),
                    'email' => $this->input->post('userEmail', TRUE),
                    'password' => sha1($this->input->post('userPassword', TRUE))
                );  

                $this->db->escape($userData);
                $this->user_model->addUser($userData);
            }

            $data['contentMangement'] = $this->options_model->systemOptions();
            $data['pageTitle'] = 'Add User';
            $this->load->view('_assets/header', $data);
            $this->load->view('addUser', $data);
            $this->load->view('_assets/footer');
    }
于 2012-06-12T22:50:06.513 に答える
0

exp の方法でis_uniqueのテーブル名を追加する必要があります。

array(
            'field' => 'email',
            'label' => 'email',
            'rules' => 'trim|required|valid_email|is_unique[users.email]',
            'errors' => array('required'  => 'Please enter a %s.','valid_email' => 'Please enter a valid %s.','is_unique' => 'email already exist.')
        ),

理解していただければ幸いです。

于 2016-08-17T12:00:09.817 に答える
0

is_unique 定義済みの検証ルールを使用するだけです。email 列のテーブル名と列名を渡します。

$this->form_validation->set_rules('userEmail','E-Mail', 'required|valid_email|trim|max_length[99]|xss_clean|is_unique[users.email]');
于 2012-06-12T06:30:31.123 に答える