thinkphp5 URL的訪問


ThinkPHP采用單一入口模式訪問應用,對應用的所有請求都定向到應用的入口文件,系統會從URL參數中解析當前請求的模塊、控制器和操作,下面是一個標准的URL訪問格式:

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

而且訪問時不需要區分大小寫,無論URL是否開啟大小寫轉換,模塊名都會強制小寫。

1.應用的index模塊的Index控制器定義如下:

<?php
namespace app\index\controller;   //命名空間

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 app\index\controller;

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

正確的URL訪問地址(該地址可以使用url方法生成)應該是:

localhost/index.php/index/hello_world/index

系統會自動定位到HelloWorld控制器類去操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM