致命错误:对未定义方法的调用无法正确调用我的SP


Fatal error: Call to undefined method cant call my SP properly

我无法在CI中正确调用SP,有人能帮我吗?

这就是错误:

致命错误:调用未定义的方法欢迎::navi_model(),位于/home/development/public_html/rmt/application/controllers/Welcome.php的第252行

这是我的示例代码:

控制器

    function upload_gen048()
{
$data['uploadData']=$this->input->post('upload');
            $this->load->model('navi_model');
            $query = $this->navi_model($data); 
            $data = array('msg' => "Upload success!");
            $data['main_content'] = 'gen048';
            $this->load->view('includes/template',$data);
            $data['uploadData'] = $this->upload->data();

型号

function upload_gen048($data)
{
$qString = '[gen048upload] '; //STORED PROCEDURE
    $qString .= "'" 
             . $data['filedate'] . "','";
             . $data['accdate'] . "','";
        echo $qString;
        $this->db->query('set ansi_padding on
                        set ARITHABORT on
                        set CONCAT_NULL_YIELDS_NULL on
                        set QUOTED_IDENTIFIER on
                        set ANSI_NULLS on
                        set ANSI_WARNINGS on
                        set numeric_roundabort off');
        $query = $this->db->query($qString);
    return ($query->num_rows() > 0) ? $query->result() : NULL;
}

如果您试图将数据传递给模型的构造函数方法,那么您应该编写。

 $params = array('param1' => 'value1', 'param2' => 'value2');
 $this->load->library('navi_model', $params);

其他

您需要在模型类名后面强制指定方法名,如:-

$this->navi_model->method_name($params); 

为了从控制器中调用模型函数,我们使用

 $query = $this->MODEL_NAME->METHOD_NAME(PARAMETER); 

您需要在从控制器调用模型时添加方法名称

更改

$query = $this->navi_model($data); 

$query = $this->navi_model->upload_gen048($data); // add method name here

读取https://www.codeigniter.com/userguide3/general/models.html

试试这个,

控制器

function upload_gen048()
{
$data['uploadData']=$this->input->post('upload');
            $this->load->model('navi_model');
            $query = $this->navi_model->function_name($data); //here is your mistake
            $data = array('msg' => "Upload success!");
            $data['main_content'] = 'gen048';
            $this->load->view('includes/template',$data);
            $data['uploadData'] = $this->upload->data();
}

试试看,让我知道它是否有效

您可以查看有关CI如何调用函数和所有的更多详细信息的文档

如何在代码点火器中从控制器调用模型