如何在CodeIgniter中显示错误消息

时间:2016-08-23 10:58:09

标签: codeigniter

控制器:

 public function add_year() {
        $session_id = $this->session->userdata('id');
        if (!empty($session_id)) {
            $this->form_validation->set_rules('year_name', 'Year Name', 'required');
            if ($this->form_validation->run() == FALSE) {
                $data = array(
                    'page_title' => 'Add Year',
                    'page_name' => 'year/add_year',
                    'admin_username' => $this->session->userdata('username')
                );
                $this->load->view('admin/template', $data);
            } else {
                $this->year_model->insert($_POST);
                redirect('admin/Year');
            }
        } else {
            redirect('admin/Login');
        }
    }

型号:

  public function insert($data) {
        $result = $this->db->get_where('year', array('year_name' => $data['year_name']))->row_array();
        if (empty($result)) {
            $insert_data = array('year_name' => $data['year_name']);
            $this->db->insert('year', $insert_data);
        } else {
            $error = "Year Name Already Exits";
            return $error;
        }
    }

查看:

<div class="text-danger">
    //display error message
</div>

我的问题:如何在视图中显示模型错误信息................................... .........................

2 个答案:

答案 0 :(得分:3)

使用以下更新的解决方案代码

型号:

 public function insert($data) {
        $result = $this->db->get_where('year', array('year_name' => $data['year_name']))->row_array();
        if (empty($result)) {
            $insert_data = array('year_name' => $data['year_name']);
            $this->db->insert('year', $insert_data);
        } else {
            $error = "Year Name Already Exits";
            return $error;
        }
        return TRUE;
    }

add_year

public function add_year() {
        $session_id = $this->session->userdata('id');
        if (!empty($session_id)) {
            $this->form_validation->set_rules('year_name', 'Year Name', 'required');
            if ($this->form_validation->run() == FALSE) {
                $data = array(
                    'page_title' => 'Add Year',
                    'page_name' => 'year/add_year',
                    'admin_username' => $this->session->userdata('username')
                );
                $this->load->view('admin/template', $data);
            } else {
               $ret =  $this->year_model->insert($_POST);
               if(!$ret){

                   $this->session->set_flashdata('error_view',$ret);
               }
                redirect('admin/Year');
            }
        } else {
            redirect('admin/Login');
        }
    }

在视图中

<?php 
echo $this->session->flashdata('error_view');
?>

答案 1 :(得分:0)

使用此代码 注意:请在is_unique函数中设置您的表和字段名称!控制器:

public function add_year() {
        $session_id = $this->session->userdata('id');
        if (!empty($session_id)) 
        {
            $this->form_validation->set_rules('year_name', 'Year Name', 'required|is_unique[table_name.field_name]');

            if ($this->form_validation->run() == FALSE) {

               $res['error']='<div class="alert alert-danger">'.validation_errors().'</div>';
            } 
            else {

                 if( $this->year_model->insert($_POST)==true)
                 {
                    redirect('admin/Year');
                 }               
            }
        } else 
        {
            redirect('admin/Login');
        }
    }

<强>模型

public function insert($data) {
        $result = $this->db->get_where('year', array('year_name' => $data['year_name']))->row_array();
        if (empty($result)) {
            $insert_data = array('year_name' => $data['year_name']);
            $this->db->insert('year', $insert_data);
            return true;
        } else {

            return false;
        }
    }

查看文件

<div class="panel-body">
                <?php   if(validation_errors()) { ?>
                    <div class="alert alert-danger"><?php echo validation_errors(); ?></div>
                <?php } ?>