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);

}

我不确定这是不是原因。我在日志中没有发现任何错误。任何帮助,谢谢。

我发现如果我在控制器中需要(一次)或包含(一次)文件,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() 注册您自己的自动加载器以使两者可以共存的建议,请参见开发人员文档(标题为“Lazy Loader”)的第 3.2 节

于 2013-10-11T07:20:26.570 回答