2017-07-24 28 views
1

我想提出一个CRUD应用与Codeignater“提交” 3.笨3:未知列在“字段列表”

我有一个“添加客户”形式姓,名,电子邮件地址,城市一个提交按钮。

这个模型看起来是这样的:

class Customer extends CI_Model { 

    public function saveCustomer($data) { 
     $tbl = $this->db->dbprefix('customers'); 
     $this->db->insert($tbl, $data); 
    } 

} 

控制器:

if ($this->form_validation->run()) { 
     $data = $this->input->post(); 
     $this->load->model('Customer'); 
     if ($this->Customer->saveCustomer($data)) { 
      $this->session->set_flashdata('response','Customer successfully added'); 
     } else { 
      $this->session->set_flashdata('response','Failed to save customer'); 
     } 
     return redirect('home'); 
} 

视图文件:

<?php echo form_open('home/save'); ?> 

    <div class="form-group <?php if(form_error('first_name')) echo 'has-error';?>"> 
     <?php echo form_input('first_name', '', [ 
      'type' => 'text', 
      'id' => 'first_name', 
      'class' => 'form-control', 
      'value' => '', 
      'placeholder' => 'First name', 
      ]); 
     ?> 
     <?php echo form_error('first_name'); ?>          
    </div> 

    <div class="form-group <?php if(form_error('last_name')) echo 'has-error';?>"> 
     <?php echo form_input('last_name', '', [ 
      'type' => 'text', 
      'id' => 'last_name', 
      'class' => 'form-control', 
      'value' => '', 
      'placeholder' => 'Last name', 
      ]); 
     ?> 
     <?php echo form_error('last_name'); ?> 
    </div> 

    <div class="form-group <?php if(form_error('email')) echo 'has-error';?>"> 
     <?php echo form_input('email', '', [ 
      'type' => 'text', 
      'id' => 'email', 
      'class' => 'form-control', 
      'value' => '', 
      'placeholder' => 'Email address', 
      ]); 
     ?> 
     <?php echo form_error('email'); ?> 
    </div> 

    <div class="form-group"> 
     <?php echo form_input('phone', '', [ 
      'type' => 'text', 
      'id' => 'phone', 
      'class' => 'form-control', 
      'value' => '', 
      'placeholder' => 'Phone number', 
      ]); 
     ?> 
    </div> 

    <div class="form-group"> 
     <?php echo form_input('city', '', [ 
      'type' => 'text', 
      'id' => 'city', 
      'class' => 'form-control', 
      'value' => '', 
      'placeholder' => 'City', 
      ]); 
     ?> 
    </div> 

    <div class="form-group"> 
     <?php echo form_input('address', '', [ 
      'type' => 'text', 
      'id' => 'address', 
      'class' => 'form-control', 
      'value' => '', 
      'placeholder' => 'Address', 
      ]); 
     ?> 
    </div> 

    <div class="form-group"> 
     <?php echo form_submit('submit', 'Save', 'class = "btn btn-primary btn-block"'); ?> 
    </div> 

<?php echo form_close(); ?> 

问题: 当我提交表单我得到这个错误:Unknown column 'submit' in 'field list'

这是为什么?

+0

小的变化可以显示视图的代码。事情是你没有在'post'中添加字段名称。 – Shihas

+0

所以'$ data'应该是一个包含所有表单输入的数组 – Shihas

回答

1

更改$data如下:

$data = array('column_name1' => $this->input->post('first_name'), 
       'column_name2' => $this->input->post('last_name'), 
       'column_name3' => $this->input->post('email'), 
       'column_name4' => $this->input->post('phone'), 
       'column_name5' => $this->input->post('city'), 
       'column_name6' => $this->input->post('address')); 

注:没有必要在控制器return,只需要redirect('home')

+0

如果这个答案可以帮助你,请支持Upvote。 :) – Shihas

0

在控制器

if ($this->form_validation->run()) { 
    $data = $this->input->post(); 
    //unset your submit value which are come from submit btn 
    if(isset($data['submit'])){unset($data['submit'])} 
    if(isset($data->submit)){unset($data->submit)} 
    $this->load->model('Customer'); 
    if ($this->Customer->saveCustomer($data)) { 
    $this->session->set_flashdata('response','Customer successfully added'); 
    } else { 
    $this->session->set_flashdata('response','Failed to save customer'); 
    } 
    return redirect('home'); 
}