mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-05 22:52:49 +08:00
去掉Loader类的table方法 改进model方法
This commit is contained in:
@@ -259,27 +259,6 @@ class Loader
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 实例化一个没有模型文件的Model(对应数据表)
|
|
||||||
* @param string $name Model名称 支持指定基础模型 例如 MongoModel:User
|
|
||||||
* @param array $options 模型参数
|
|
||||||
* @return Model
|
|
||||||
*/
|
|
||||||
public static function table($name = '', array $options = [])
|
|
||||||
{
|
|
||||||
static $_model = [];
|
|
||||||
if (strpos($name, ':')) {
|
|
||||||
list($class, $name) = explode(':', $name);
|
|
||||||
} else {
|
|
||||||
$class = 'think\\Model';
|
|
||||||
}
|
|
||||||
$guid = $name . '_' . $class;
|
|
||||||
if (!isset($_model[$guid])) {
|
|
||||||
$_model[$guid] = new $class($name, $options);
|
|
||||||
}
|
|
||||||
return $_model[$guid];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实例化(分层)模型
|
* 实例化(分层)模型
|
||||||
* @param string $name Model名称
|
* @param string $name Model名称
|
||||||
@@ -288,9 +267,6 @@ class Loader
|
|||||||
*/
|
*/
|
||||||
public static function model($name = '', $layer = MODEL_LAYER)
|
public static function model($name = '', $layer = MODEL_LAYER)
|
||||||
{
|
{
|
||||||
if (empty($name)) {
|
|
||||||
return new Model;
|
|
||||||
}
|
|
||||||
static $_model = [];
|
static $_model = [];
|
||||||
if (isset($_model[$name . $layer])) {
|
if (isset($_model[$name . $layer])) {
|
||||||
return $_model[$name . $layer];
|
return $_model[$name . $layer];
|
||||||
@@ -301,16 +277,14 @@ class Loader
|
|||||||
$module = APP_MULTI_MODULE ? MODULE_NAME : '';
|
$module = APP_MULTI_MODULE ? MODULE_NAME : '';
|
||||||
}
|
}
|
||||||
$class = self::parseClass($module, $layer, $name);
|
$class = self::parseClass($module, $layer, $name);
|
||||||
$name = basename($name);
|
|
||||||
if (class_exists($class)) {
|
if (class_exists($class)) {
|
||||||
$model = new $class($name);
|
$model = new $class();
|
||||||
} else {
|
} else {
|
||||||
$class = str_replace('\\' . $module . '\\', '\\' . COMMON_MODULE . '\\', $class);
|
$class = str_replace('\\' . $module . '\\', '\\' . COMMON_MODULE . '\\', $class);
|
||||||
if (class_exists($class)) {
|
if (class_exists($class)) {
|
||||||
$model = new $class($name);
|
$model = new $class();
|
||||||
} else {
|
} else {
|
||||||
Log::record('实例化不存在的类:' . $class, 'notice');
|
throw new Exception('class [ ' . $class . ' ] not exists', 10001);
|
||||||
$model = new Model($name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$_model[$name . $layer] = $model;
|
$_model[$name . $layer] = $model;
|
||||||
|
|||||||
Reference in New Issue
Block a user