编辑:所以这一切都与图书馆名称的大写有关。一旦我更改了$ 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()
答案 0 :(得分:1)
我尝试使用Codeigniter 3进行复制,发现您可以使用您的结构进行复制。我能够重现的唯一错误是命名类 public ,因为public是PHP中的关键字,您可能会遇到使用该名称的问题。
/libraries
../User
../User/User.php
../User/Public
../User/Public/Pub.php
class User
{
function __construct()
{
echo "1";
}
}
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