zoukankan      html  css  js  c++  java
  • TP框架

    创建控制器:

    在Controller控制器文件夹里面新建操作方法。(记得命名规则驼峰法命名)

    写好控制器后再编辑控制器里面的内容,写操作方法。

    <?php
    namespace HomeController;
    use ThinkController;
    class MainController extends  Controller   //一定要写这句话代表的是继承父类的操作方法
    //如果不继承父类它就不是一个操作方法。
    {
        public function index(){
            echo "访问了main控制器的index方法";
        } 
        public function mains(){
            echo "main";
        }
        //所以说一个控制器下面可以有很多个操作方法。
    }

    前两句话根据以往的控制器原样复制上就可以。

    访问页面的时候就可以采用路径访问就可以。如下图访问

    这里的操作方法只输出了一句话,如果想访问这个操作方法显示出来页面的话,需要在把echo里面的内容换成一个模板

    找一个模板扔到Home文件夹里面的View文件夹下。(因为这个View文件夹里面主要放模板)  因为操作方法名叫做index,所以需要把

    这个模板文件名称改成index.html。做到这一步还是不行的。控制器可以直接扔到controller控制器文件夹里面。但是模板文件index.html不能直接扔到

    View视图层里面。因为一个控制器下面可以有多个操作方法,每个操作方法里面可以有一个页面。也就是每个控制器里面可以有多个操作方法,每个操作方法

    在访问的时候都可以显示一个模板文件的。(比如说main控制器里面有个index页面,index控制器里面有个index页面,这样就造成重名了。)所以模板文件直接扔到

    View文件夹下是不行的。

    具体放模板文件的操作方法是:

    在View视图层文件夹里面新建一个以控制器命名的文件夹main,再将模板文件index.php模板文件扔到刚建好的以控制器命名的文件夹里面

    这样的话再访问main控制器的index的时候,它会直接过来找View文件夹里面的Main文件夹里面index.html。

    所以你如果想添加模板文件的话需要去View视图层模板文件里面新建一些文件夹出来。这些文件夹对应的就是控制器名称。(这也是一种规则)

    然后再在相对应的控制器里面的操作方法里面写上调用模板的内容

    $this这个对象是控制器的对象。直接用$this调用display这个方法就可以显示出对应的模板文件了。

    smarty模板里面display()里面给了一个参数,是页面名称,模板名称。

    但是TP框架不用写这个参数了,因为TP框架遵循的是MVC模式。MVC模式里面是有约定的。所以在TP框架里面

    调用模版文件$this->display();括号里面不用写模板名称。

    TP里面也可以用$this->show();来显示模板文件 它等于$this->display();(建议用$this->show();)

    在TP框架里面也可以使用smarty模板里面的一个方法叫做$this->assign();注册变量的方法

    在index操作方法里面注册了一个变量test然后到相对应的模板文件里面显示

    结果就会显示出变量的值。跟smarty模板里面的用法一样。

    TP访问的方式一种是路径的方式如下图

    1.路径的方式:

    入口文件后面跟斜杠Home跟斜杠控制器跟斜杠操作方法

    2.get方式:

    也是先找到入口文件?m=Home&c=Main&a=index     m是模块c是控制器a是操作方法。

    后面相当于get传值所以可以叫做get模式

    3.rewrite重写模式:

    相对于第二个方法来说省略掉了入口文件

    也就是说在浏览器上不用写入口文件了,直接写模块名,控制器名操作方法名就可以访问了。

    4.兼容模式(既有路径也有get结合起来的)

    找到index.php入口文件后

    localhost/0306/thinkphp/index.php?s=Home/Main/index

    在控制器里面的操作方法里面写个U()方法来创建一个访问路径:

    前台显示的效果如下图:

    生成的路径最后面会自动带着.html后缀。

    U方法在生成路径的时候不仅可以生成当前控制器里边的路径,还可以生成其他控制器里边的路径。

    <?php
    namespace HomeController;
    use ThinkController;
    class MainController extends  Controller   //一定要写这句话代表的是继承父类的操作方法
    //如果不继承父类它就不是一个操作方法。
    {
        public function index(){
            
            echo U("index/index");
            
            $this->assign("test","111");
            $this->display();
        } 
        public function mains(){
            echo "main";
        }
        //所以说一个控制器下面可以有很多个操作方法。
    }

    在开发过程中可以在配置文件夹里面打开,convention里面没有只能自己写上。

    打开这个配置后会显示如下图的效果:

  • 相关阅读:
    install ros-indigo-tf2
    install ros-indigo-tf
    install diagnostic_updater
    install ros-indigo-ecl-build
    "CMAKE_CXX_COMPILER-NOTFOUND"
    shell 交互式选择(select)
    install ros indigo tf2
    a标签 在新页面打开
    bootstrap.min.css.map HTTP/1.1" 404 1699
    E: Sub-process /usr/bin/dpkg returned an error code (1)
  • 原文地址:https://www.cnblogs.com/shandayuan/p/7409911.html
Copyright © 2011-2022 走看看