CodeIgniter中库的多级目录结构

时间:2015-10-14 14:46:25

标签: codeigniter codeigniter-2 codeigniter-3

  

编辑:所以这一切都与图书馆名称的大写有关。一旦我更改了$ this-> P rofessional-> initialize(1);至   $ this-> p rofessional-> initialize(1);它奏效了。

如何访问存储在多级目录结构中的库?

这是我的图书馆目录结构

application
-libraries
--User
---User.php (Parent class)
---Admin
----Admin.php (Child class of User.php)
---Professional
----Professional.php (Child class of User.php)

在控制器中

class Test extends CI_Controller {

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

public function user ()
{

        $this->load->library ( 'User/Professional/Professional' );

        $this->Professional->initialize ( 1 );

}

}

类/库已加载但我无法像$this->Public

那样访问它
  

错误消息:未定义属性:Test :: $ Professional

     

错误消息:在非对象上调用成员函数initialize()

1 个答案:

答案 0 :(得分:1)

我尝试使用Codeigniter 3进行复制,发现您可以使用您的结构进行复制。我能够重现的唯一错误是命名类 public ,因为public是PHP中的关键字,您可能会遇到使用该名称的问题。

文件结构

/libraries
../User
../User/User.php
../User/Public
../User/Public/Pub.php

User.php - Parent

class User
{
    function __construct()
    {
        echo "1";
    }
}

Pub.php - Child

require(dirname(__FILE__) . '/../User.php');

class Pub extends User
{
    function __construct()
    {
        parent::__construct();
        echo "2";
    }

    function init()
    {
        echo "True";
    }
}

实施

public function index()
    {
        $this->load->library('User/Public/Pub');
        $this->pub->init();
    }

输出

12True