tp5 跨模块调用模板 所有的变量也要重新定义吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5 跨模块调用模板 所有的变量也要重新定义吗相关的知识,希望对你有一定的参考价值。

参考技术A 就在模块里 public 变量名 as 数据类型 之后在 模块名.变量名 调用追问

你没理解我的意思 我是从admin模块跨模块调用index模块里的视图模板 然后所有的assign赋值在index模板里的控制器 我在admin模块的控制器里跨模块调用 所有的数据都显示未定义变量 是否要在调用的控制器底下重新赋值

tp框架之Model类与命名空间

1.获取系统常量信息

public function shuchu()
    {
        var_dump(get_defined_constants());    
    }
2.跨控制器或跨模块调用
技术分享
function diaoyong()
    {
        //跨控制器或跨模块调用用方法
        //1.造对象调用
        /*$sc=new IndexController();
        $sc->index();*/
        
        //2.使用TP框架的快捷方法A来创建控制器对象
        //$sc=A("Admin/Main");  //前面的Admin是文件夹名,后面是控制器名,这是跨模块调用    
        //echo $sc->shuchu();    //因为是return回来的所以要输出一下
        
        //3.使用TP框架的快捷方法R来自动调用某个控制器里的某个操作方法
        //echo R("Admin/Main/shuchu");  //R方法自动实例化并调用指定方法
    }
技术分享

3.U方法获取方法的路径

echo U("peizhi");  //引号里面写方法名,可以输出别的模块的方法路径

4.造一个Model类对象

 

技术分享
function db()
    {
        //1.原始方式 
        /*$m=new \Home\Model\InfoModel();
        var_dump($m);*/    
        
        //2.使用快捷方法D  这个方法是如果有子类,实例化一个子类对象,若果没有实例化父类对象
        /*$m=D("Info");
        var_dump($m);*/
        
        //3.使用快捷方法M  这个方法不管有没有子类,都是实例化父类对象
        /*$m=M("Info");
        var_dump($m);*/
         }
技术分享

命名空间:
相当于虚拟的目录
在tp里面主要为了实现自动加载类

TP框架下有一个初始命名空间(相当于根目录)
初始命名空间:ThinkPHP\Library

在初始命名空间下又包含很多根命名空间
这些根命名空间主要分两类:
1.TP核心类里面的根
    在Library下所有的文件夹都是根
    
2.APP里面的根
    APP里面的根是以模块名命名的

在写命名空间的时候,从根开始写。

public function shuchu()
    {
        //return "测试";
        var_dump(get_defined_constants());    
    }























以上是关于tp5 跨模块调用模板 所有的变量也要重新定义吗的主要内容,如果未能解决你的问题,请参考以下文章

tp5.1 在子类控制器中获取父类渲染到模板的变量

Python 3 实现定义跨模块的全局变量和使用

tp5怎么调用common里面自定义的函数

基于tp5免费开源的后台管理系统

tp5.0 修改了默认控制器,为啥样式路径都不对了

Python实现跨文件全局变量的方法(摘抄版)