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里面没有只能自己写上。

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

  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/shandayuan/p/7409911.html
Copyright © 2011-2022 走看看