think\Loader::model PHP Method

model() public static method

实例化(分层)模型
public static model ( string $name = '', string $layer = 'model', boolean $appendSuffix = false, string $common = 'common' ) : Object
$name string Model名称
$layer string 业务层名称
$appendSuffix boolean 是否添加类名后缀
$common string 公共模块名
return Object
    public static function model($name = '', $layer = 'model', $appendSuffix = false, $common = 'common')
    {
        if (isset(self::$instance[$name . $layer])) {
            return self::$instance[$name . $layer];
        }
        if (strpos($name, '/')) {
            list($module, $name) = explode('/', $name, 2);
        } else {
            $module = Request::instance()->module();
        }
        $class = self::parseClass($module, $layer, $name, $appendSuffix);
        if (class_exists($class)) {
            $model = new $class();
        } else {
            $class = str_replace('\\' . $module . '\\', '\\' . $common . '\\', $class);
            if (class_exists($class)) {
                $model = new $class();
            } else {
                throw new ClassNotFoundException('class not exists:' . $class, $class);
            }
        }
        self::$instance[$name . $layer] = $model;
        return $model;
    }

Usage Example

Example #1
0
 /**
  * 利用TP核心的单图片上传方法
  */
 public function picture()
 {
     $Storage = Loader::model('Storage');
     $options = ['ext' => ['jpg', 'gif', 'png', 'jpeg']];
     $info = $Storage->upload('upload', $options);
     if (false !== $info) {
         return $this->success('上传成功', '', $info);
     } else {
         return $this->error($Storage->getError());
     }
 }
All Usage Examples Of think\Loader::model