thinkphp D方法 疑问
本文介绍了thinkphp D方法 疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我看到别人写代码的时候,直接用D("User")方法,我知道这个D方法是用来实例化自定义模型类的,但是我没有在Model目录中找到这个UserModel.class.php,请问那是怎么回事?
解决方案
没有model就会实例化 系统基础Model
function D($name = '', $layer = '')
{
if (empty($name)) {
return new Think\Model;
}
static $_model = array();
$layer = $layer ?: C('DEFAULT_M_LAYER');
if (isset($_model[$name . $layer])) {
return $_model[$name . $layer];
}
$class = parse_res_name($name, $layer);
if (class_exists($class)) {
$model = new $class(basename($name));
} elseif (false === strpos($name, '/')) {
// 自动加载公共模块下面的模型
if (!C('APP_USE_NAMESPACE')) {
import('Common/' . $layer . '/' . $class);
} else {
$class = '\\Common\\' . $layer . '\\' . $name . $layer;
}
$model = class_exists($class) ? new $class($name) : new Think\Model($name);
} else {
Think\Log::record('D方法实例化没找到模型类' . $class, Think\Log::NOTICE);
$model = new Think\Model(basename($name));
}
$_model[$name . $layer] = $model;
return $model;
}
这篇关于thinkphp D方法 疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文