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

时间:2016-01-13 06:01:45

标签: php codeigniter

我无法在CI中正确地调用我的SP有人可以帮助我吗?

这是错误:

  

致命错误:在第252行的/home/development/public_html/rmt/application/controllers/welcome.php中调用未定义的方法Welcome :: navi_model()

以下是我的示例代码:

控制器

    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;
}

3 个答案:

答案 0 :(得分:3)

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

 $params = array('param1' => 'value1', 'param2' => 'value2');

 $this->load->library('navi_model', $params);

其他

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

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

答案 1 :(得分:2)

要调用模型函数表单控制器,我们使用

 $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

答案 2 :(得分:1)

试试这个,

控制器

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();
}

尝试并让我知道它是否有效

您可以访问documentation获取更多详细信息,了解CI如何调用函数以及所有

how-to-call-model-from-controller-in-codeigniter