我无法装入我的自定义类亘古不变的从任何核心类扩展。 我已经把我的自定义类里面的应用程序/库的子文件夹。笨库 - 错误加载自定义类
因此,这里是我的文件夹结构
application
|_ libraries
|_ cgh
|_ cgh_asset.php
|_ cgh_article.php
|_ cgh_asettype.php
|_ controllers
|_ welcome.php
类Cgh_article是Cgh_asset的子类
Cgh_asset.php:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
abstract class Cgh_asset
{
public $id;
public $type;
public $title;
public $content;
public $user;
abstract public function generate_url();
function __construct()
{
$this->generate_url();
}
}
?>
Cgh_article.php:
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Cgh_article extends Cgh_asset
{
function __construct()
{
parent::__construct();
$this->type=Cgh_assettype::article;
}
function generate_url()
{
$this->url="Article_URL";
}
}
?>
Cgh_assettype.php:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Cgh_assettype
{
const type1="type1";
const type2="type2";
const article="article";
}
?>
控制器的welcome.php
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->library('cgh/Cgh_assettype','cgh/Cgh_asset','cgh/Cgh_article');
$this->load->view('welcome_message');
}
}
我得到的错误是: 无法加载所请求的类:Cgh_assettype
我一定已经尝试了所有可能的上,下类名,文件名,但错误的情况下组合是永远不变的。
通过一些答案去后,我想可能是我应该在这里增加一个基本问题 - 它是在所有可能笨内有我自己的自定义对象类型...类型,应该是相当明显的,从我的问题?
这似乎为我工作,所以这里是我会做......至少到一些突破:
在我的控制器的构造函数中,我使用require_once我的班.. 。而好消息是,我可以我所有的类合并成一个单一的文件 - 我的班最初是在一个单一的文件反正 - 这是在变动后我的控制器,这一点也适用:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public $cgh_assettype;
public $cgh_asset;
public $cgh_article;
function __construct()
{
parent::__construct();
//$this->load->library(array('cgh/cgh_assettype','cgh/cgh_asset','cgh/cgh_article'));
echo "Including CGH<br />";
echo "<p>Apppath is ". APPPATH. "</p>";
require_once(APPPATH.'libraries/cgh/Cgh_assettype.php');
require_once(APPPATH.'libraries/cgh/Cgh_asset.php');
require_once(APPPATH.'libraries/cgh/Cgh_article.php');
}
public function index()
{
$iCgh_article=new Cgh_article();
echo "<p>$iCgh_article->url</p>";
$this->load->view('welcome_message');
}
}
您是否尝试过使用低级文件名并加载**数组库**; '$这 - >负载>库(阵列( 'CGH/cgh_assettype', 'CGH/cgh_asset', 'CGH/cgh_article'));'? –
我已经尝试过所有可能的组合类名,文件名的大写和小写。没有工作。我试过从类名,文件名中删除Cgh_前缀。没有工作。我尝试将我的类文件移动到应用程序/库的根目录中。没有工作。目前我正在尝试require_once(APPPATH.'libraries/cgh/Cgh_assettype.php');在index.php – SIndhu
顺便说一句,你正在尝试加载'cgh_assettype',但你的文件被命名为'cgh_asettype.php',你检查了吗? –