• thinkphp5 URL的访问


    ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作,下面是一个标准的URL访问格式:

    localhost/index.php/模块/控制器/操作

    而且访问时不需要区分大小写,无论URL是否开启大小写转换,模块名都会强制小写。

    1.应用的index模块的Index控制器定义如下:

    <?php
    namespace appindexcontroller;   //命名空间
    
    class Index{                               //控制器名称
        public function index(){           //方法名称
            return 'index';                    //用return输出而不要用echo
        }
    
        public function hello($name = 'World'){      //方法里可以放变量
            return 'Hello,' . $name . '!';      //这里引用了$name变量,中间拼接用"."
        }
    }            

    现在访问的路径为

    localhost/index/index/hello

    访问URL地址后页面输出结果为:

    Hello,World!

    如果要访问控制器的hello方法,则需要使用完整的URL地址

    localhost/index/index/hello/name/tp5

    访问URL地址后页面输出结果为:

    Hello,tp5!

     现在给hello方法增加第二个参数:

     public function hello($name = 'World', $city = ''){
            return 'Hello,' . $name . '! You come from ' . $city . '.';
        }

    访问地址为

    localhost/index.php/index/index/hello/name/thinkphp/city/shanghai

    页面输出结果为:

    Hello,thinkphp! You come from shanghai.

    可以看到,hello方法会自动获取URL地址中的同名参数值作为方法的参数值,而且这个参数的传入顺序不受URL参数顺序的影响,例如下面的URL地址输出的结果和上面是一样的:

    localhost/index.php/index/index/hello/city/shanghai/name/thinkphp

    或者使用

    localhost/index.php/index/index/hello?city=shanghai&name=thinkphp

    2.如果你的控制器是驼峰的,例如定义一个HelloWorld控制器(application/index/controller/HelloWorld.php):

    <?php
    namespace appindexcontroller;
    
    class HelloWorld{
        public function index($name = 'World'){
            return 'Hello,' . $name . '!';
        }
    }

    正确的URL访问地址(该地址可以使用url方法生成)应该是:

    localhost/index.php/index/hello_world/index

    系统会自动定位到HelloWorld控制器类去操作。

  • 相关阅读:
    hdu 4107 Gangster 线段树(成段更新)
    hdu 3037 Saving Beans (lucas定理)
    hdu 3944 DP? (Lucas 定理)
    hdu 5038 Grade 水
    ASP.NET Core 配置 MVC
    ASP.NET Core 静态文件
    ASP.NET Core 异常和错误处理
    ASP.NET Core 中间件
    ASP.NET Core 项目配置 ( Startup )
    ASP.NET Core 基本项目目录结构
  • 原文地址:https://www.cnblogs.com/shenzikun1314/p/6970650.html
Copyright © 2020-2023  润新知