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方法实例化自定义模型。

  • 相关阅读:
    The provided URI scheme 'http' is invalid; expected 'https'. Parameter name: via
    WCF传递Stream时,同时传递其它参数的问题
    DotNet NB 学习公众号
    军师旅团营连排班各有多少人
    OAuth 2.0学习
    人生三境界
    Mac OS安装Windows各版本时注意事项(2014年后的Mac机相信会有这些问题)
    C#中winform使用相对路径读取文件的方法
    Sql Server Report Service 的部署问题(Reporting Service 2014為什麼不需要IIS就可以運行)
    Reporting Services报表常用的URL参数
  • 原文地址:https://www.cnblogs.com/457248499-qq-com/p/7388270.html
Copyright © 2011-2022 走看看