CodeIgniter调用函数模型时的未定义属性

时间:2014-08-27 13:51:12

标签: php codeigniter model

我需要帮助,我正在寻找1天前的错误

Severity: Notice
Message: Undefined property: Login::$Usuario_model
Filename: api/login.php
Line Number: 27

Fatal error: Call to a member function obtener_usuario() on a non-object in /home/fpincheira/web/cobranza/application/controllers/api/login.php on line 27

这是我的模型 usuario_model.php 。这个查询是一个例子,我真正的查询是其他

<?php
  class Usuario_model extends CI_Model {

    function __construct(){
      parent::__construct();
      $this->db1 = $this->load->database('db1', TRUE);
    }

    function obtener_usuario($rut){
      $sql = "SELECT sysdate FROM dual"; //this is a example query
      $query = $this->db1->query($sql, array($rut));
      return $query->result_array();
    }
  }
?>

控制器 login.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');
  require APPPATH.'/libraries/REST_Controller.php';
  class Login extends REST_Controller {

    function __construct(){
      parent::__construct();
    }

    function validarUsuario_post(){
      try{
        $username = $this->post('user');

        $this->load->model('Usuario_model','usuario');
        $perfil_usuario = $this->usuario->obtener_usuario($username);
        //print_r($perfil_usuario);
      }catch(Exception $e){
        $this->response(array('error'=>$e->getMessage()), $e->getCode());
      }
    }
  }
?>

在我的 autoload.php 中,我已经加载了数据库&#39;库。

你能看到错误吗?

3 个答案:

答案 0 :(得分:1)

您需要替换以下行:

$this->load->model('Usuario_model','usuario');
$perfil_usuario = $this->usuario->obtener_usuario($username);

with:

$this->load->model('usuario_model');
$perfil_usuario = $this->usuario_model->obtener_usuario($username);

请通过评论来告诉我。

答案 1 :(得分:1)

回答这个问题。

我不得不创建对象,因为要导入模型codeigniter而不是创建对象的实例。

$this->load->model('usuario_model');
$usuario = new usuario_model();

$perfil_usuario = $usuario->obtener_usuario($username);
这样我可以访问模型的功能。

如果有人有最佳答案,请发表评论,谢谢

此致

答案 2 :(得分:0)

usuario_model.php和$ this-&gt; load-&gt; model('Usuario_model','usuario');你不认为小写和大写的模型名称有所不同。虽然从控制器U调用加载模型是封顶,但实际模型文件名是小写的。因此,模型文件丢失/找不到。

你在控制器中获得$ username值吗?这个链接应该有助于阅读问题部分。 include function used before CodeIgniter class changes the view loading order