カスタムクラスをロードできません。doesnotはどのコアクラスからも拡張できません。 カスタムクラスをapplication/libraries内のサブフォルダに配置しました。Codeigniterライブラリ - カスタムクラスの読み込み中にエラーが発生する
だからここに私のフォルダ構造は、クラスCgh_articleがCgh_asset
Cgh_asset.phpのサブクラスである
application
|_ libraries
|_ cgh
|_ cgh_asset.php
|_ cgh_article.php
|_ cgh_asettype.php
|_ controllers
|_ welcome.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
:要求されたクラスをロードできません クラス名、ファイル名の大文字と小文字の組み合わせですが、エラーは常に同じです。
は、いくつかの答えを通過した後、私はおそらく私がここ1つの、基本的な質問を追加すべきだと思う - CodeIgniterの中に独自のカスタム・オブジェクト・タイプを持つことで、すべてのことが可能です...私の質問からはかなり明白であるタイプを?
は、この私が何かが壊れ、少なくともまで...やってされるものであるので、ここで、私のために働くようだ:私のコントローラのコンストラクタで
、私は私のクラスのための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');
}
}
ファイル名を小文字にしてライブラリの配列**をロードしようとしましたか? '$ this-> load-> library(array( 'cgh/cgh_assettype'、 'cgh/cgh_asset'、 'cgh/cgh_article'));'? –
クラス名、ファイル名の大文字と小文字の組み合わせを試しました。 doesnt仕事。私はクラス名、ファイル名からCgh_プレフィックスを削除しようとしました。 doesnt仕事。クラスファイルをアプリケーション/ライブラリのルートに移動しようとしました。 doesnt仕事。現在、私はrequire_once(APPPATH.'libraries/cgh/Cgh_assettype.php ')を試しています。 in index.php – SIndhu
あなたは 'cgh_assettype'を読み込もうとしていますが、あなたのファイルの名前は' cgh_asettype.php'となっています。 –