Daftar dan Belajar Sekarang!

Gagal update data (ci), message: too few arguments to function menu::editmenu(), 0 passed

foto MuhammadFathurRachman
25 Kontribusi 7 Coto
1 tahun yang lalu
saya sedang membuat update menu, gagal dan menghasilkan error: An uncaught Exception was encountered Type: ArgumentCountError Message: Too few arguments to function Menu::editMenu(), 0 passed in C:\xampp\htdocs\web-absensi-cuti\system\core\CodeIgniter.php on line 532 and exactly 1 expected Filename: C:\xampp\htdocs\web-absensi-cuti\application\controllers\Menu.php Line Number: 36 Backtrace: File: C:\xampp\htdocs\web-absensi-cuti\index.php Line: 315 Function: require_once controller menu.php
public function __construct()
    {
        parent::__construct();
        $this->load->model('Menu_model');
        cek_login();
    }

public function editMenu($id)
    {
        $data['title'] = 'Ubah Menu';
        $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
        $data['menu'] = $this->Menu_model->getMenuById($id);

        $this->form_validation->set_rules('menu', 'menu', 'required');

        if ($this->form_validation->run() == false) {
            $this->load->view('templates/header', $data);
            $this->load->view('templates/sidebar', $data);
            $this->load->view('templates/topbar', $data);
            $this->load->view('menu/ubah-menu', $data);
            $this->load->view('templates/footer');
        } else {
            $this->Menu_model->ubahMenu();
            $this->session->set_flashdata('pesan', '<div class="alert alert-success" role="alert">
            Menu berhasil diubah!</div>');
            redirect('menu');
        }
    }
model Menu_model.php
public function getMenuById($id)
    {
        return $this->db->get_where('user_menu', ['id' => $id])->row_array();
    }

    
    public function ubahMenu()
    {
        $menu = $this->input->post('menu', true);
        $this->db->set('menu', $menu);
        $this->db->where('id', $this->input->post('id'));
        $this->db->update('user_menu');
    }
view ubah-menu.php
<!-- Begin Page Content -->
<div class="container-fluid">

    <!-- Page Heading -->
    <h1 class="h3 mb-4 text-gray-800"><?= $title; ?></h1>

    <div class="row">
        <div class="col-lg-6">
            <?= $this->session->flashdata('pesan'); ?>
            <form action="<?= base_url('menu/editmenu'); ?>" method="post">
                <input type="hidden" name="id" value="<?= $menu['id']; ?>">
                <div class="form-group">
                    <label for="menu">Menu</label>
                    <input type="text" class="form-control" id="menu" name="menu" value="<?= $menu['menu']; ?>">
                    <?= form_error('menu', '<small class="text-danger">', '</small>'); ?>
                </div>

                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-icon-split">
                        <span class="icon text-white-50">
                            <i class="fas fa-fw fa-save"></i>
                        </span>
                        <span class="text">Simpan</span>
                    </button>
                </div>
            </form>
        </div>
    </div>

</div>
<!-- /.container-fluid -->

</div>
<!-- End of Main Content -->
saya sudah nyoba beberapa cara dari stackoverflow, tutorial" update data CI dan masih tetap sama hasilnya. mohon bantuannya agar update menu yg saya buat bisa jalan?

Tag: php codeigniter

✔ Forum ini sudah terjawab


Jawaban
foto MuhammadFathurRachman
25 Kontribusi 7 Coto
1 tahun yang lalu
Alhamdulillah. akhirnya bisa juga, saya rasa saya udah coba syntax ini sebelumnya dan ga jalan. setelah hibernate laptop untuk sholat teraweh dan baru nyoba lagi dengan syntax yg saya rasa udah saya coba dan akhirnya jalan. dibagian file Menu_model.php ada sedikit perubahan, dari seperti ini
public function ubahMenu()
    {
        $menu = $this->input->post('menu', true);
        $this->db->set('menu', $menu);
        $this->db->where('id', $this->input->post('id'));
        $this->db->update('user_menu');
    }
menjadi
public function ubahMenu()
    {
        $id = $this->input->post('id', true);
        $menu = $this->input->post('menu', true);
        $this->db->set('menu', $menu);
        $this->db->where('id', $id);
        $this->db->update('user_menu');
    }
dan mengubah action form di view/ubah-menu
<form action="<?= base_url('menu/editmenu'); ?>" method="post">
dengan mengosongkannya
<form action="" method="post">
saya rasa kedua syntax fungsinya sama, hanya $id tidak saya deklarasikan dan langsung taruh di $this->db->where(). kenapa bisa berbeda seperti itu ya? setelah saya coba dengan syntax yg saya rasa sudah saya coba tapi gagal lagi dan lagi dengan mengosongkan actionnya dan akhirnya jalan dan ketika action nya diisi dengan <?= base_url('menu/editmenu'); ?> error seperti pertanyaan saya pun muncul. setelah action formnya dikosongkan, ubahMenu() di Menu_model.php saya ubah seperti ini dan tetap jalan
public function ubahMenu()
    {
        $id = $this->input->post('id', true);
        $menu = $this->input->post('menu', true);

        $this->db->where('id', $id)->update('user_menu', ['menu' => $menu]);
    }
Alhamdulillah.
answered icon
foto MuhammadFathurRachman
25 Kontribusi 7 Coto
1 tahun yang lalu
Alhamdulillah. akhirnya bisa juga, saya rasa saya udah coba syntax ini sebelumnya dan ga jalan. setelah hibernate laptop untuk sholat teraweh dan baru nyoba lagi dengan syntax yg saya rasa udah saya coba dan akhirnya jalan. dibagian file Menu_model.php ada sedikit perubahan, dari seperti ini
public function ubahMenu()
    {
        $menu = $this->input->post('menu', true);
        $this->db->set('menu', $menu);
        $this->db->where('id', $this->input->post('id'));
        $this->db->update('user_menu');
    }
menjadi
public function ubahMenu()
    {
        $id = $this->input->post('id', true);
        $menu = $this->input->post('menu', true);
        $this->db->set('menu', $menu);
        $this->db->where('id', $id);
        $this->db->update('user_menu');
    }
dan mengubah action form di view/ubah-menu
<form action="<?= base_url('menu/editmenu'); ?>" method="post">
dengan mengosongkannya
<form action="" method="post">
saya rasa kedua syntax fungsinya sama, hanya $id tidak saya deklarasikan dan langsung taruh di $this->db->where(). kenapa bisa berbeda seperti itu ya? setelah saya coba dengan syntax yg saya rasa sudah saya coba tapi gagal lagi dan lagi dengan mengosongkan actionnya dan akhirnya jalan dan ketika action nya diisi dengan <?= base_url('menu/editmenu'); ?> error seperti pertanyaan saya pun muncul. setelah action formnya dikosongkan, ubahMenu() di Menu_model.php saya ubah seperti ini dan tetap jalan
public function ubahMenu()
    {
        $id = $this->input->post('id', true);
        $menu = $this->input->post('menu', true);

        $this->db->where('id', $id)->update('user_menu', ['menu' => $menu]);
    }
Alhamdulillah.

foto DwiGigih
3 Kontribusi 0 Coto
5 bulan yang lalu
gan boleh minta source codenya ? punya saya sama kendalanya seperti agan , tapi saya coba seperti yg diatas masih salah

foto MuhammadFathurRachman
25 Kontribusi 7 Coto
5 bulan yang lalu
hmmm.. nanti saya cari dulu ya gan, soalnya ini kalau saya ga salah inget program dari skripsi saya
  • iya gan ditunggu ya gan saya masih eror ni, dah saya oprek oprek masih nda bisa juga .. - DwiGigih

foto rafi017
1 Kontribusi 0 Coto
5 bulan yang lalu
saya punya eror yang sama gan dan setelah di coba alhamdulillah berhasil, tengkyu gan....

foto hafizulf
1 Kontribusi 0 Coto
2 bulan yang lalu
gan, mkasih atas jawabannya.. tapi kenapa ya di actionnya harus dikosongkan. mohon penjelasannya kalo tau gan. Dan kenapa ya kalo menu nya uda diedit malah sekarang sub menu nya gabisa lagi dijalankan karena sub menunya kan berasosiasi dengan menu saat di tambahkan, kalo tau cara update yang disubmenu juga skalian trima kasih


Login untuk diksusi di forum sekolah koding