Обнаружено неперехваченное исключение Тип: ArgumentCountError

Пожалуйста, помогите мне, я не могу получить доступ к своему коду, он всегда показывает ошибку:

An uncaught Exception was encountered

Type: ArgumentCountError

Message: Too few arguments to function Gallery::edit(), 1 passed in C:\xampp\htdocs\eatsoc\system\core\CodeIgniter.php on line 532 and exactly 2 expected

Filename: C:\xampp\htdocs\eatsoc\application\controllers\backend\Gallery.php

Line Number: 53

Backtrace:

File: C:\xampp\htdocs\eatsoc\index.php

Line: 315

Function: require_once

Но в моем другом коде код работает нормально ...

Это код:

Контроллер: Gallery.php

class Gallery extends CI_Controller {

//Load Model
public function __construct()
{
    parent::__construct();
    $this->load->model('backend/Gallery_model');
    $this->load->library('upload');
}
//Halaman Utama
public function index()
{
    $gallery = $this->Gallery_model->listing();
    $data = array('title' => 'Data Gallery ('.count($gallery).')',
                  'gallery'  => $gallery,
                  'isi'   => 'backend/gallery/list');
    $this->load->view('backend/layout/wrapper', $data, FALSE);
}    

//Halaman Tambah
public function tambah(){
    //Validasi
    $valid=$this->form_validation;
    
    $valid->set_rules('tittle', 'tittle', 'required',
            array('required'    => 'tittle harus diisi'));
    
    $valid->set_rules('file', 'file', 'required',
                      array('required' => 'Gambar harus diisi'));

    if ($valid->run()===FALSE){
        $data = array('title' => 'Tambah Gallery',
                  'isi'   => 'backend/gallery/tambah');
        $this->load->view('backend/layout/wrapper', $data, FALSE); 
    }else{
        $i= $this->input;
        $data = array('id_gallery' => $i->post('id_gallery'),
                      'tittle' => $i->post('tittle'),
                      'deskripsi'=> $i->post('deskripsi'),
                      'file'=> $i->post('file'),
                     );
        $this->Gallery_model->tambah($data);
        $this->session->set_flashdata('sukses','Data telah ditambah');
        redirect(base_url('backend/gallery'),'refresh');
    }
    //End masuk database
}

//Halaman Edit
public function edit($id_gallery){
    $gallery = $this->Gallery_model->detail($id_gallery);
    
    //Validasi
    $valid=$this->form_validation;
    
    $valid->set_rules('tittle', 'tittle', 'required',
                      array('required' => 'tittle harus diisi'));
    
    if ($valid->run()===FALSE){
        $data = array('title' => 'Edit Gallery: '.$gallery->tittle,
                      'gallery'  => $gallery,
                      'isi'   => 'backend/gallery/edit');
        $this->load->view('backend/layout/wrapper', $data, FALSE); 
    } else{
        $i= $this->input;
        $this->Gallery_model->edit($data);
        $this->session->set_flashdata('sukses','Data telah diubah');
        redirect(base_url('backend/gallery'),'refresh');
    }
    //End masuk database
}

//Halaman Delete
public function delete($id_gallery){
    $data = array('id_gallery' => $id_gallery);
    $this->Gallery_model->delete($data);
    $this->session->set_flashdata('sukses', 'Data telah dihapus');
    redirect(base_url('backend/gallery'),'refresh');
} 

}

Модель: Gallery_model.php

class Gallery_model extends CI_Model{

public function __construct()
{
    parent::__construct();
    $this->load->database();
}

//Listing
public function listing(){
    $this->db->select('*');  
    $this->db->from('gallery'); 
    $this->db->order_by('id_gallery');
    $query = $this->db->get();
    return $query->result();
}

//Detail
public function detail($id_gallery){
    $this->db->select('*');  
    $this->db->from('gallery'); 
    $this->db->where('id_gallery',$id_gallery); 
    $this->db->order_by('id_gallery');
    $query = $this->db->get();
    return $query->row();
}

// Tambah
public function tambah($data){
    $this->db->insert('gallery', $data);   
}

// Edit
public function edit($id_gallery, $data){
    $this->db->where('id_gallery', $data['id_gallery']);   
    $this->db->update('gallery', $data['id_gallery']);   
}

 // delete
public function delete($data){
    $this->db->where('id_gallery', $data['id_gallery']);   
    $this->db->delete('gallery', $data);   
}

}

Ввиду: Папка Admin / Галерея edit.php

    <!-- Content Header (Page header) -->
<section class = "content-header">
  <h1> Gallery </h1>
  <ol class = "breadcrumb">
    <li><a href = "#"><i class = "fa fa-dashboard"> Dasbor</i></a></li>
      <li><a href = "<?php echo base_url('backend/gallery')?>"><i class = "fa fa-table"> </i>Gallery</a></li>
    <li class = "active"> Edit</li>
  </ol>
</section>
<div class = "box">
    <div class = "box-header">
        <p>
            <a href = "<?php echo base_url('backend/gallery/edit')?>" class = "btn btn-success">
                <i class = "fa fa-plus"></i>Edit</a>
        </p>
        <?php
            //Notifikasi
            if ($this->session->flashdata('sukses')){
                echo '<div class = "alert alert-success"><i class = "fa fa-check">';
                echo $this->session->flashdata('sukses');
                echo '</div>';
            }?>
    </div>
    <div class = "box-body">
        <?php
        //Notifikasi kalau ada input error
        echo validation_errors('<div class = "alert alert-danger"><i class = "fa fa-warning"></i>','</div>');
        //Open Form
        echo form_open(base_url('backend/gallery/edit'));
        ?>

        <div class = "col-md-12">
            <div class = "form-group">     
                <label>Gambar</label><input type = "file" name = "file" class = "dropify" style = "width: 100%; height: 200px;" required> <?php echo $gallery->file?>
            </div>
            <br>
            <div class = "form-group">
                <label>tittle</label>
                <input type = "text" name = "tittle" class = "form-control" placeholder = "tittle" value = "<?php echo $gallery->tittle?>" required>
            </div>
            <div class = "form-group">
                <div class = "box">
                    <div class = "box-header">
                      <h3 class = "box-title">Deskripsi</h3>
                    </div>
                            <textarea class = "text" placeholder = "Deskripsi" style = "width:100%;height: 200px;line-height: 18px; border: 1px solid #dddddd; padding: 10px;" name = "deskripsi"><?php echo $gallery->deskripsi?></textarea>
                    </div>
                  </div>
            </div>
            <div class = "form-group">
                <input type = "submit" name = "submit" class = "btn btn-success btn-lg" value = "edit">
                <input type = "reset" name = "submit" class = "btn btn-default btn-lg" value = "Reset">
            </div>
        </div>

        <?php
        //Form Close
        echo form_close();
        ?>
    </div>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
3 262
1

Ответы 1

В Gallery.php измените эту строчку

public function edit($id_gallery){
   ...
       $this->Gallery_model->edit($data);
   ...
}

К

public function edit($id_gallery){
   ...
       $this->Gallery_model->edit($id_gallery, $data);
   ...
}

Это потому, что этот метод (в Gallery_model) определен следующим образом:

  public function edit($id_gallery, $data){ ... }

Для чего требуются как идентификатор галереи, так и данные. Вы только отправили ему данные ...

Вариант 2

Другой вариант, поскольку кажется, что идентификатор является частью данных, - просто удалить этот первый аргумент в Gallery_model. Вот так это выглядит:

// Edit
public function edit($data){
    $this->db->where('id_gallery', $data['id_gallery']);   
    $this->db->update('gallery', $data['id_gallery']);   //see below
}

Ошибка немного сбивает с толку, но, вероятно, происходит из-за того, где этот метод вызывается в контроллере «Галерея».

Последний

Последнее, что может быть неправильным:

$this->db->update('gallery', $data['id_gallery']); 

Я не часто использую CI, но кажется, что если вы выполняете обновление, вам понадобится больше данных, чем просто идентификатор галереи. Вполне возможно, что это должно быть:

$this->db->update('gallery', $data);

Но, как я уже сказал, в наши дни я не очень часто использую CI, поэтому я не могу сказать это наверняка. Но, похоже, в этом было бы гораздо больше смысла:

     // Edit
public function edit($id_gallery, $data){
    $this->db->where('id_gallery', $id_gallery);   
    $this->db->update('gallery', $data); 
}

//and call it this way $this->Gallery_model->edit($id_gallery, $data);

В любом случае, надеюсь, это поможет

Ваше здоровье!

Привет, спасибо за ответ, но мой код все еще застрял в коротком аргументе ... Я могу открыть редактирование, но я не могу его сохранить, каждый раз, когда я сохраняю его, он всегда будет превращаться в ошибку аргумента

Kuroda Ayumu 04.10.2018 18:38

Что ж, тогда я не знаю, что тебе сказать.

ArtisticPhoenix 04.10.2018 18:47

Очень подробный и точный ответ.

Alex 05.10.2018 06:50

Другие вопросы по теме