我无法在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如何调用函数和所有的更多详细信息的文档
如何在代码点火器中从控制器调用模型