zoukankan      html  css  js  c++  java
  • 02-如何实例化模型

    在ThinkPHP中,可以无需进行任何模型定义。只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的,因此ThinkPHP在模型上有很多的灵活和方便性,让你无需因为表太多而烦恼。 根据不同的模型定义,我们有几种实例化模型的方法,下面来分析下什么情况下用什么方法:

    1、实例化基础模型(Model) 类 在没有定义任何模型的时候,我们可以使用下面的方法实例化一个模型类来进行操作:

    1. //实例化User模型
    2. $User = new Model('User');
    3. //或者使用M()快捷方法实例化,和上面的方法是等效的
    4. $User = M('User');
    5. //执行其他的数据操作
    6. $User->select();

    这种方法最简单高效,因为不需要定义任何的模型类,所以支持跨项目调用。缺点也是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的CURD操作。

    2、实例化用户自定义模型(×××Model)类 这种情况是使用的最多的,一个项目不可避免的需要定义自身的业务逻辑实现,就需要针对每个数据表定义一个模型类,例如UserModel 、InfoModel等等。 定义的模型类通常都是放到项目的LibModel目录下面。例如,

    1. <?php
    2.     class UserModel extends Model{
    3.         public function getTopUser(){
    4.             //添加自己的业务逻辑
    5.              // ...
    6.         }
    7.     }

    其实模型类还可以继承一个用户自定义的公共模型类,而不是只能继承Model类。 要实例化自定义模型类,可以使用下面的方式:

    1. <?php
    2.     //实例化自定义模型
    3.     $User = new UserModel();
    4.     //或者使用D快捷方法
    5.     $User = D('User');
    6.     //执行具体的数据操作
    7.     $User->select();

    D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。 D方法还可以支持跨项目和分组调用,需要使用:

    1. //实例化Admin项目的User模型
    2. D('Admin://User')
    3. //实例化Admin分组的User模型
    4. D('Admin/User')
  • 相关阅读:
    目标检测应用化之web页面(YOLO、SSD等)
    传统候选区域提取方法
    非极大值抑制(Non-Maximum Suppression,NMS)
    Darknet windows移植(YOLO v2)
    线性判别分析 LDA
    SVM 支持向量机
    特征-相似度衡量
    布隆过滤器 Bloom Filter
    聚类算法
    图论--最大流
  • 原文地址:https://www.cnblogs.com/freestyle-le/p/4510838.html
Copyright © 2011-2022 走看看