我不明白为啥会抛出“调用未定义的方法 CI_Input()::event()”

Posted

技术标签:

【中文标题】我不明白为啥会抛出“调用未定义的方法 CI_Input()::event()”【英文标题】:I dont understand why "Call to undefined method CI_Input()::event()" is being thrown我不明白为什么会抛出“调用未定义的方法 CI_Input()::event()” 【发布时间】:2020-08-07 22:12:33 【问题描述】:

我正在尝试使用表单将新记录(在本例中为事件)添加到数据库。我不明白为什么我会收到以下错误:

这是我在控制器中的创建函数,'Events.php':


    public function create()
        $data['title'] = 'Create Event';

        $this->form_validation->set_rules('title', 'Title', 'required');
        $this->form_validation->set_rules('description', 'Description', 'required');
        $this->form_validation->set_rules('location', 'Location', 'required');
        $this->form_validation->set_rules('date', 'Date', 'required');
        $this->form_validation->set_rules('time', 'Time', 'required');

        if($this->form_validation->run() === FALSE)
            $this->load->view('templates/header');
            $this->load->view('events/create', $data);
            $this->load->view('templates/footer');
         else 
            $this->Event_model->create_event();
            redirect('events');
        

    

然后这是我的“Event_model”中的 create_event 函数,用于尝试创建新的条目对象(?),然后将其添加到数据库中:


    public function create_event()
            $slug = url_title($this->input->event('title'));

            $data = array(
                'title' => $this->input->event('title'),
                'description' => $this->input->event('description'),
                'date' => $this->input->event('date'),
                'time' => $this->input->event('time'),
                'location' => $this->input->event('location'),
                'slug' => $slug,
                'invitees' => $this->input->event('invitees')
            );

            return $this->db->insert('events', $data);
        

我收到错误:

Message: Call to undefined method CI_Input::event()

从我第一次尝试在 create_event() 函数中调用“事件”时,我尝试分配 $slug 值。

我知道在我尝试引用它之前,我没有将 create 函数中的“事件”初始化为对象(或方法?),但我只是想从表单中获取值并将它们传递给数据库,

在我遵循的指南中,他们没有收到此类错误

任何帮助将不胜感激

【问题讨论】:

你能做一个 var_dump($this->input);在分配 $slug 之前?看看你有什么资料吗? 另外,试试 $this->input->post('event') 而不是 $this->input->event 【参考方案1】:

Input class 中没有 event() 方法。您应该使用post()get() 方法。

'title' => $this->input->post('title')

【讨论】:

谢谢你,我现在明白我在这种情况下做错了什么:)

以上是关于我不明白为啥会抛出“调用未定义的方法 CI_Input()::event()”的主要内容,如果未能解决你的问题,请参考以下文章

试图在 mongoose 中填充一个嵌套数组,抛出一个看似无关的 CastError,我不明白为啥

为啥Visual Studio在声明字符串数组列表时会抛出异常

为啥有时会抛出 FileNotFoundException

为啥 FileOutputStream 会抛出 FileNotFoundException?

为啥“prepareCall”会抛出 NumberFormatException?

为啥 BluetoothSetLocalServiceInfo 会抛出错误 1314?