Произошла ошибка базы данных Номер ошибки: 1048 Столбец 'gambar' не может быть пустым, загрузите файл в codeigniter - PullRequest
0 голосов
/ 14 июля 2020

файл загрузки метода работает отлично, но я не могу сохранить данные, возможно, есть что-то с переменной "gambar", я просто не могу понять, как работает этот файл загрузки. поэтому, пожалуйста, помогите мне это исправить

enter image description here

controller :

public function add(){
    if($this->input->post('submit')){
        if($this->Console_model->validation("save")){
        $this->Console_model->create();
        if($this->db->affected_rows() > 0){
            $this->session->set_flashdata('msg',' Консоль успешно добавлена!  '); } еще {$ this-> session-> set_flashdata ('msg', ' Ошибка ввода в консоль!  '); } перенаправление ('консоль'); }} $ data ['specs'] = $ this-> Spec_model-> читать (); $ data ['view'] = "консоль / v_form"; $ this-> load-> view ('индекс', $ data); } 

модель:

public function create(){
    $data=array(
        'nama_con' => $this->input->post('nama_con'),
        'garansi' => $this->input->post('garansi'),
        'deskripsi' => $this->input->post('deskripsi'),
        'harga' => $this->input->post('harga'),
        'gambar' => $this->input->post('gambar')
    );
    $this->gambar=$this->do_upload();
    $this->db->insert('tb_console',$data);
}

private function do_upload(){
    $config['upload_path']      = './uploads/barang/';
    $config['allowed_types']    = 'gif|jpg|png';
    $config['max_size']         = 4072;
    $config['max_width']        = 1024;
    $config['max_height']       = 768;

    $this->load->library('upload', $config);
    if($this->upload->do_upload('gambar')){
        return $this->upload->data('file_name');
    }
    return "default.jpg";
}

Я должен попытаться использовать метод create, прежде чем я закодирую метод загрузки, и он работает нормально

вид:

<?php
$nama="";$gar="";$desk="";$har="";$gam="";
    if(isset($con)){
        $nama=$con->nama_con;
        $gar=$con->garansi;
        $desk=$con->deskripsi;
        $har=$con->harga;
        $gam=$con->gambar;
    }
?>
<div class="container">
    <div class="row">
        <form class="col-md-4 mx-auto" action="" method="post" enctype="multipart/form-data">
            <h2 class="mt-5 mb-5">Form Console</h2>
            <div style="color: red;"><?php echo validation_errors(); ?></div>
            <div class="form-group">
                <label for="Nama">Nama Console</label>
                <select name="nama_con" class="form-control" id="">
                    <option value="">Choose Console</option>
                    <?php foreach($specs as $spec){ ?>
                    <option value="<?=$spec->name_con?>" <?=set_select('name_con', $spec->name_con, $nama==$spec->name_con?TRUE:FALSE)?>><?=$spec->name_con?></option>
                    <?php } ?>
                </select>
            </div>
            <div class="form-group">
                <label for="garansi">Garansi</label>
                <input type="number" class="form-control" name="garansi" value="<?=$gar?>">
            </div>
            <div class="form-group">
                <label for="Deskripsi">Deskripsi</label>
                <textarea name="deskripsi" class="form-control" id=""><?=$desk?></textarea>
            </div>
            <div class="form-group">
                <label for="harga">Harga</label>
                <input type="number" class="form-control" name="harga" value="<?=$har?>">
            </div>
            <div class="form-group">
                <label for="fullname">Gambar</label>
                <input type="file" name="gambar" class="form-control" required>
            </div>
            <div class="form-group"><input type="submit" name="submit" value="Save" class="btn btn-success">
            <a href="<?=site_url('console')?>"><input type="button" value="Batal" class="btn btn-danger"></a>
            </div>
        </form>
    </div>
</div>

1 Ответ

1 голос
/ 14 июля 2020

Это потому, что ваше значение гамбара равно нулю, а ваше поле гамбара не может содержать пустое значение, вы можете отредактировать свое поле и поставить галочку на нулевом флажке.

Вы можете попробовать:

public function create()
{
  $this->gambar=$this->do_upload();
  $data=array(
          'nama_con' => $this->input->post('nama_con'),
          'garansi' => $this->input->post('garansi'),
          'deskripsi' => $this->input->post('deskripsi'),
          'harga' => $this->input->post('harga'),
          'gambar' => $this->gambar
        );
   $this->db->insert('tb_console',$data);
}

ваше имя pict не из сообщения, это из возврата do_upload, я думаю

...