代码点火器 3 'Too few arguments to function 0 exactly 1 expected'

Codeigniter 3 'Too few arguments to function 0 exactly 1 expected'

我是编程新手,我的脚本有问题。我希望你能帮助我。

这是我的问题:

An uncaught exception was encountered

Type: ArgumentCountError

Message: Too few arguments to function M_warisantb::Caridata(), 0 passed in C:\xampp\htdocs\budaya\dapobud\application\controllers\Home.php on line 58 and exactly 1 expected

Filename: C:\xampp\htdocs\budaya\dapobud\application\models\M_warisantb.php

Line Number: 12

Backtrace:

File: C:\xampp\htdocs\budaya\dapobud\application\controllers\Home.php Line: 58 Function: Caridata

File: C:\xampp\htdocs\budaya\dapobud\index.php Line: 315 Function: require_once

我正在尝试使用 select 查询进行搜索(在 Codeigniter 3 中) 我开始构建一个表单来开始这样的搜索:

  <form method="POST" action="<?php echo base_url('Home/Cari');?>" class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
   <div class="input-group">
      <input name="cari" type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="cari" aria-describedby="basic-addon2">
      <div class="input-group-append">
          <button class="btn btn-primary" type="submit">
             <i class="fas fa-search fa-sm"></i>
          </button>
       </div>
   </div>
</form>

然后我为 运行 这个函数创建模型,如下所示:

public function Caridata($cari)
{
    $this->db->like('domain_opk', $cari);
    return $this->db->get_where('tradisi')->result_array();
}

我认为$cari来自<input name="cari" type="text">

这是我的控制器

public function Cari()
{
    $data['title'] ='Galeri Foto';  
    $data['tradisi'] = $this->M_warisantb->Caridata();
    $this->load->view('templates/header',$data);
    $this->load->view('templates/sidebar');
    $this->load->view('templates/topbargaleri');
    $this->load->view('templates/galeri',$data);
    $this->load->view('templates/footer');
}

在此先感谢您的帮助...

在模型中,您创建了一个参数化的函数 Caridata,正如您提到的,该参数来自您的表单,因此,首先从表单中获取输入值,然后将其传递给在控制器中调用它时的函数。简单如下-

$name = $this->input->post('cari');

然后,而不是-

$data['tradisi'] = $this->M_warisantb->Caridata();

这样做 -

$data['tradisi'] = $this->M_warisantb->Caridata($name);