我要做的是通过调用控制器中的$this->model_name->function()
来访问CodeIgniter样式的模型。继续我到目前为止所做的事情:
$this->load = new Load();
foreach (glob("application/models/*.php") as $file) {
$model = basename($file, ".php");
$this->$model = new $model;
}
我知道我不能做我在那里尝试的事情,但希望你能看到我的目标。我想要做的是让PHP为模型文件夹中的每个文件写$this->modelname = new modelname;
。我正在抓取所有PHP文件并剥离目录和.php只留下文件名。
如果这很难理解,我很难道歉,很难解释>。<
答案 0 :(得分:1)
它实际上应该可以工作,你只需要实际包含文件:
foreach (glob("application/models/*.php") as $file) {
@include_once $file;
$model = basename($file, ".php");
if (class_exists($model)) {
$this->$model = new $model;
} else {
//handle error, trow an exception?
}
}
答案 1 :(得分:1)
为什么不创建自动加载器?
spl_autoload_register('customAutoloader');
function customAutoloader($class_name){
$file_name = $class_name . ".php";
//Model
if(substr($class_name, -5) === "Model"){
if(is_readable(PATH_MODELS . $file_name)){
require_once(PATH_MODELS . $file_name);
}
}
}
在这种情况下,所有模型类都必须被称为ModelnameModel,文件的名称应该相同 - ModelnameModel.php并且位于PATH_MODELS中。