Article

2016-09-17 10:36:11

关于Thinkphp跨模块调用模型出现的问题

关于Thinkphp跨模块调用的问题

在开发后台管理程序的时候要在后台Admin模块的一个控制器里面调用前台模块Home中的一个模型

例如:
D('Article')->edit_article();
但结果会报错,提示 Think\Model:edit_article 方法不存在!

后来才发现调用时要写成 D("模块名/模型名")
D('Home/Article')->edit_article();


对Thinkphp中D方法和M方法的理解

    相同点:

        Thinkphp中的D方法和M方法都是用来实例化对象。

    不同点:

        简单来说,D方法是实例化一个基于Model文件的Model,而M方法则是通过直接实例化Model方法(ThinkPHP基类)来动态的实例化一个Model对象,即使这个对应的Model文件不存在。

        再通俗点说就是:M方法实例化参数是数据库的表名,而D方法实例化的是你自己在Model文件夹下面建立的模型文件

    所以我在开发过程中使用M方法跨模块调用的时候没有报错的原因也就如此了!


Tags:
ThinkPHP PHP 
Stats:
1 comments
511 views