Получить данные в функции конструктора codeigniter

Я пытаюсь получить данные из базы данных в функции конструктора codeigniter, но получаю неопределенную ошибку метода

контроллер-

class Welcome extends CI_Controller
function __construct()
{
parent::__construct();
$this->load->model('Login');
$this->Login->getadminnav();
}
}

модели-

class Login extends CI_Model 
{
public function adminnav()
{
$query="SELECT * from adminnav where status='1'";
$query->row_array();
return true;
}
}

3 ответа

Вы вызываете getadminnav(), но в вашей модели имя метода - adminnav.and измените имя модели Login на Login_model. попробуй это:

class Welcome extends CI_Controller{
    function __construct(){
        parent::__construct();
        $this->load->model('Login_model');
        $this->Login->adminnav();
    }
}

// модель

class Login_model extends CI_Model{
    public function adminnav()
{
$query="SELECT * from adminnav where status='1'";
$query->row_array();
return true;
}
}

Попробуйте эти кусочки кода.

контроллер:

class Welcome extends CI_Controller{
    function __construct(){
        parent::__construct();
        $this->load->model('Login');
        $this->Login->adminnav();
    }
}

Модель:

class Login extends CI_Model{
    public function adminnav(){
        $this->load->database();
        $sql = "SELECT * from adminnav where status='1'";
        $result = $this->db->query($sql);
        return $result;
    }
}

Я вижу в вашем коде, что...

  1. В контроллере вы не запустили вторую скобку после имени контроллера.
  2. Вы определили имя функции как "adminnav" в модели, но назвали его как "getadminnav" в контроллере
  3. Вы не загрузили базу данных в модель (если вы уже загрузили ее в autoload.php, то здесь не требуется)

В любом случае, пожалуйста, дайте мне знать, решена ли ваша проблема или нет.

Вы должны загрузить модель, которую вы используете в первую очередь:

$this->load->model('login_model');
$this->Login->getadminnav();

И не забудьте переименовать модель в Login_model

Другие вопросы по тегам