Postingan lainnya
Gagal update data (ci), message: too few arguments to function menu::editmenu(), 0 passed
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?
5 Jawaban:
Jawaban Terpilih
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 <pre> 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'); } </pre>
menjadi <pre> 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'); } </pre>
dan mengubah action form di view/ubah-menu <pre> <form action="<?= base_url('menu/editmenu'); ?>" method="post"> </pre>
dengan mengosongkannya <pre> <form action="" method="post"> </pre>
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 <pre> public function ubahMenu() { $id = $this->input->post('id', true); $menu = $this->input->post('menu', true);
$this-&gt;db-&gt;where('id', $id)-&gt;update('user_menu', ['menu' =&gt; $menu]);
}
</pre>
Alhamdulillah.
gan boleh minta source codenya ? punya saya sama kendalanya seperti agan , tapi saya coba seperti yg diatas masih salah
hmmm.. nanti saya cari dulu ya gan, soalnya ini kalau saya ga salah inget program dari skripsi saya
Tanggapan
iya gan ditunggu ya gan saya masih eror ni, dah saya oprek oprek masih nda bisa juga ..
saya punya eror yang sama gan dan setelah di coba alhamdulillah berhasil, tengkyu gan....
Tanggapan
ya gan, sama-sama :)
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