zoukankan      html  css  js  c++  java
  • TP中模型实例化

    模型的实例化操作(重点)

    模型虽然已经创建完成,但是由于模型的本质是一个类,类在使用的时候需要实例化操作。

    5.1、普通实例化方法

    普通实例化方法是指通过自己编写代码来new一个对象。

    $obj = new 类名();

    在控制器中定义一个方法来实例化模型,使用的是普通方式实例化:

    创建部门控制器文件:

     

    实例化代码:

     

    实例化结果:

     

    5.2快速实例化方法

    上述的普通实例化方法虽然可以进行实例化操作,但是使用上比较麻烦,还需要考虑命名空间,所以ThinkPHP为了简单、快速、高效开发,为我们提供了2快速方法可以对模型进行实例化操作:

    M方法和D方法。

    D方法实例化:

    $obj = D([‘模型名’]);

    表达的含义:实例化我们自己创建的模型(分组/Model目录中);如果传递了模型名,则实例化指定的模型,如果没有指定或者模型名不存在,则直接实例化父类模型(Model.class.php

    M方法实例化:

    $obj = M([‘不带前缀的表名]);

    表达的含义:直接实例化父类模型(Think目录下的Model.class.php);如果指定了表名,则实例化父类模型的时候关联指定的表;如果没有指定表名(没有传递参数)则不关联表,一般用于执行原生的sql语句(M() -> query(原生的sql语句))。

    案例:使用快速方法DM方法对模型进行实例化操作。

     

    实例化代码:

     

    经典面试题:

    问:实例化方法中D方法和M方法有什么区别?

    答:D方法是实例化自定义模型,如果自定义模型不存在,则实例化父类模型;M方法本身就是直接实例化父类模型。两者的差异就是实例化的对象不一样。

    在后期开发的时候怎么去选择是使用D方法还是M方法呢?

    可以根据自身的情况,如果需要使用的操作父类中已经封装好了,则可以直接实例化父类(使用M方法),如果父类中方法不能满足我们的开发需要求,需要自己定义方法,则这个时候可以使用D方法实例化自定义模型。

  • 相关阅读:
    Spark Streaming(一)
    ACID
    SparkSQL
    scala样例类
    centos7 防火墙有关命令
    HBase优化
    scp
    HBase与Hive
    HBase与MapReduce交互
    Hadoop安全模式
  • 原文地址:https://www.cnblogs.com/457248499-qq-com/p/7388270.html
Copyright © 2011-2022 走看看