最新消息: 新版網站上線了!!!

thinkphp5.1框架訪問控制器操作url路徑格式

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

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

1558780824956717.png

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

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

<?php
//命名空間
namespace app\index\controller; 
//控制器名稱  
class Index{ 
    //操作方法名稱                              
    public function index(){
      //用return輸出而不要用echo           
      return 'index';                    
    }
    //方法里可以放變量
    public function hello($name = 'World'){ 
      //這里引用了$name變量,中間拼接用"."      
      return 'Hello,' . $name . '!';      
    }
}

現在訪問的路徑為

localhost/index.php/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.如果你的控制器是駝峰的,例如定義一個TestCase控制器(application/index/controller/TestCase.php):

<?php
namespace app\index\controller;
class TestCase{
    public function index($name = 'testcase'){
        return '測試案例名稱,' . $name . '!';
    }
}

1558781169339580.png

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

localhost/index.php/index/test_case/index

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


.....

轉載請注明:谷谷點程序 » thinkphp5.1框架訪問控制器操作url路徑格式

体彩25选5开奖号码