【问题标题】:load model from folder in codeigniter从 codeigniter 中的文件夹加载模型
【发布时间】:2014-03-25 11:17:27
【问题描述】:

我正在使用 codeigniter 并分别处理管理端和用户端。现在我有模型,它位于管理文件夹中,我想调用用户控制器。但是当我试图从管理文件夹中加载模型时

$this->load->model('admin/myinterest_model');

$data['myInterest'] = $this->myinterest_model->selectResult('user',  $this->session->userdata['Id']);

显示以下错误

Message: Undefined property: Users::$myinterest_model
Filename: controllers/users.php

请指导我如何从管理员加载模型

【问题讨论】:

  • 你在哪里使用这个模型?在控制器中?这个控制器的类定义是什么?
  • @abs class Users extends CI_Controller { } 这个文件放在控制器中,但 myinterest_model 放在 admin/models/ 中,所以我需要访问用户控制器中的模型函数
  • 显示您的模型详细信息,您可能在类 def 中有名称拼写错误。
  • class MyInterest_Model 扩展 CI_Model { private $tablename = 'my_interests';函数 __construct(){ 父::__construct();当我在管理文件夹中加载这个模型时它工作正常但是当我试图退一步文件夹时它显示在错误上方

标签: php codeigniter


【解决方案1】:
$this->load->model('admin/myinterest_model' , 'myinterest');

第二个参数(可选)用于调用方法。

例如:

$this->myinterest->get_users();

【讨论】:

    【解决方案2】:

    在控制器中尝试这个调用构造函数并将模型加载到其中

    function __construct()
        {
            // Initialization of class
            parent::__construct();
    
            // load the model
            $this->load->model('admin/myinterest_model');
        }
    

    【讨论】:

    • 虽然这不是一个有效的解决方案,但您正在将模型加载到构造或函数中,同样的事情。
    • 我知道,但是你有没有在模型和控制器中构造方法,因为它是强制性的。我得到了同样的错误,因为我的控制器没有构造方法
    【解决方案3】:

    在您的 models 文件夹中创建一个文件夹(application/models/admin) 并将您的管理文件放在那里 (M yinterest_model.php)
    现在在您的控制器中只需调用您的模型

    $this->load->model('admin/myinterest_model');
    

    【讨论】:

    • 我已经在 admin 文件夹中添加了 myinterest_model 但现在我需要从用户控制器中的 admin/myinterest_model 访问一个函数,所以当我尝试加载你提到的模型时它不起作用
    猜你喜欢
    • 2022-12-16
    • 2017-06-21
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多