gpt4 book ai didi

CodeIgniter:在同一 Controller 中加载多个模型

转载 作者:行者123 更新时间:2023-12-02 21:49:37 25 4
gpt4 key购买 nike

我搜索了整个互联网,要么没有人提到我的问题,要么我很愚蠢,或者也许这只是编码的糟糕一天。

情况如何:

  • Controller “来源”
  • 模型“来源”
  • 模型“登录”

“登录”模型是从autoload.php加载的,然后在每个 Controller 的构造函数中我有$this->login->check(),它正在检查如果用户已登录(显然)。然后,在某些方法中,我使用“源”模型连接到数据库。

我尝试从自动加载数组加载这两个模型,我还尝试以描述的方式加载它们 here ,但这显然是针对旧的 CI 版本(该线程来自 2008 年),并且我尝试了我想到的所有可能的方法。

无论如何,结果是这样的:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Source::$login

Filename: controllers/source.php

Line Number: 10

Fatal error: Call to a member function check() on a non-object in ...\application\controllers\source.php on line 10

有什么想法我错过了什么或如何解决它......?我被困了几个小时,我不知道我能做什么......

编辑 1:这是来自“源” Controller 的代码:

class Source extends CI_Controller {

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

$this->load->model('login');

$this->login->check();
}

function index() {
// Pagination config, getting records from DB

$this->load->view('templates/layout', $data);
}

function add() {
$this->load->model('source', '', true);

$btn = $this->input->post('btn');

if(isset($btn)) {
// More form validation

if($this->form_validation->run() == TRUE) {
if($btn == "Add") {
// here I am supposed to use the source model...
}
}
}

$data['page'] = 'source_add';

$this->load->view('templates/layout', $data);
}

}

?>

编辑2:login.php:

<?php

class Login extends CI_Model {

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

function authenticate($username, $password) {
// the login script comes here
}

function logged() {
if($this->session->userdata('logged') == true) {
return true;
} else return false;
}

function check() {
if(!$this->logged()) {
redirect('/authentication');
}
}
}
?>

最佳答案

按照惯例,Models 的类名应该以 _model 结尾,这样就不会与同名的 Controller 冲突,所以尝试更改一下

class Login extends CI_Model {

class Login_model extends CI_Model {

关于CodeIgniter:在同一 Controller 中加载多个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com