You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codeigniter3调用M_warisantb::Caridata()报Too few arguments错误如何解决

报错根因

你定义的M_warisantb模型下的Caridata方法要求必须传入1个参数,但是你在控制器Home的Cari方法中调用该方法时没有传递任何参数,因此触发了参数计数错误。
表单提交的搜索值不会自动传入模型方法,需要你先在控制器层接收POST参数,再手动传递给模型。

修复方案

  1. 修改控制器的Cari方法,先接收表单提交的搜索参数再传给模型:
public function Cari()
{
    // 接收POST提交的cari参数,第二个参数开启CI自带的XSS过滤
    $cari = $this->input->post('cari', TRUE);
    $data['title'] ='Galeri Foto';  
    // 将拿到的搜索值传入模型方法
    $data['tradisi'] = $this->M_warisantb->Caridata($cari);
    $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');
}
  1. 可以给模型方法的参数加默认值,兼容空搜索、用户直接访问路由无POST参数的场景,避免意外报错:
public function Caridata($cari = '')
{
    $this->db->like('domain_opk', $cari);
    // 原代码无where条件,无需使用get_where,直接调用get方法即可
    return $this->db->get('tradisi')->result_array();
}

内容的提问来源于stack exchange,提问作者nanonao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:48:03