0

プロジェクトで phpexcel を使用しています。関数でクラスを呼び出すと、Excel ファイルを開くことができません。クラスを呼び出します。

$Model = loadModel('cpm','cpm',$this->registry);

私の機能:

function loadModel($com='',$class_name='',$registry=null) {
if (empty($com)){
    $com = 'admin';
}
$filename = strtolower($class_name) . '.class.php';
$file = PATH_MODEL.DS.$com.DS.$filename;

if (file_exists($file) == false){
    return false;
}
require_once($file);
if($registry != NULL){
    $model = new $class_name($registry);
}else{
    $model = new $class_name;
}
return $model;

}

私が変わるとき

/*require_once($file);
if($registry != NULL){
    $model = new $class_name($registry);
}else{
    $model = new $class_name;
}*/
$model=true;
return $model;

それは動作します。私のプロジェクトでは、オートロードを使用しています:

function __autoload($class_name) {
/*** get the component from the url ***/
$com = (empty($_GET['com'])) ? '' : $_GET['com'];

if (empty($com)){
    $com = 'admin';
}
$filename = strtolower($class_name) . '.class.php';
$file = PATH_MODEL.DS.$com.DS.$filename;

if (file_exists($file) == false){
    return false;
}
requine_once ($file);

}

それが理由かどうかはわかりません。ログにエラーは見つかりませんでした。助けてください、ありがとう。

コントローラーでファイルをrequire(once)またはinclude(once)すると、Excelファイルが開けなくなることがわかりました。

class excelController extends baseController {
public function index(){
    require('abc.class.php');
    $this->registry->template->show('excel', false);    
}

}

4

1 に答える 1

0

オートローダーが PHPExcel のオートローダーと競合している可能性があります。独自のオートローダーを spl_autoload_register() に登録して 2 つが共存できるようにするためのアドバイスについては、開発者ドキュメントのセクション 3.2 (「Lazy Loader」というタイトル) を参照してください。

于 2013-10-11T07:20:26.570 に答える