Слишком мало аргументов для работы - PullRequest
0 голосов
/ 13 июля 2020

кто-нибудь может мне помочь, идентификатор, который я вызвал, не найден, я новичок в codeigniter и php, и я пытаюсь создать crud (update), как это решить? заранее спасибо

Контроллер

    public function editdata($id) ---------> LINE 41
    {
        $data['title'] = 'Edit Data Interview';
        $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
        $data['form1'] = $this->db->get_where('form1', ['id_form1' => $id])->row_array();

    }

Просмотр

    <form action="<?= site_url('datainterview/editdata/' . $m['id_form1']) ?>" method="post">
                                            <input type="hidden" name="id_form1" value="<?= $m['id_form1'] ?>">
                                            <button onclick="return confirm('Edit Data ?')" class="btn btn-primary btn-xs">Edit</button>
                                        </form>

Ошибка

    Message: Too few arguments to function DataInterview::editdata(), 0 passed in C:\xampp\htdocs\MYNET\system\core\CodeIgniter.php on line 532 and exactly 1 expected

Filename: C:\xampp\htdocs\MYNET\application\controllers\DataInterview.php

Line Number: 41

1 Ответ

2 голосов
/ 13 июля 2020

Обычно ваш URL-адрес не содержит идентификатора при отправке данных.

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

    public function editdata($id = null)
    {
        $data['title'] = 'Edit Data Interview';
        $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
        $data['form1'] = $this->db->get_where('form1', ['id_form1' => $id])->row_array();

    }

Таким образом, id будет иметь значение по умолчанию null. Итак, если вы попытаетесь получить доступ к этой переменной, это будет значение, которое вы получите при доступе:

example.com / DataInterview / editdata

Однако при доступе:

example .com / DataInterview / editdata / 12

вы получите значение 12.

Вы можете даже go сделать шаг вперед и выдать правильную ошибку, если идентификатор не передается в функцию. . Что-то вроде:

public function editdata($id = null)
{
    if (is_null($id)) {
       show_404();
    }
    $data['title'] = 'Edit Data Interview';
    $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
    $data['form1'] = $this->db->get_where('form1', ['id_form1' => $id])->row_array();

}

Затем вы можете перейти к флэш-данным этой ошибки и показать правильные ошибки вашему пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...