Получить данные в функции конструктора 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;
}
}
Я вижу в вашем коде, что...
- В контроллере вы не запустили вторую скобку после имени контроллера.
- Вы определили имя функции как "adminnav" в модели, но назвали его как "getadminnav" в контроллере
- Вы не загрузили базу данных в модель (если вы уже загрузили ее в autoload.php, то здесь не требуется)
В любом случае, пожалуйста, дайте мне знать, решена ли ваша проблема или нет.
Вы должны загрузить модель, которую вы используете в первую очередь:
$this->load->model('login_model');
$this->Login->getadminnav();
И не забудьте переименовать модель в Login_model