<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## 控制器 我們找到`index`模塊的`Index`控制器(文件位于`application/index/controller/Index.php` 注意大小寫),我們把`Index`控制器類的`index`方法修改為`Hello,World!`。 ~~~ <?php namespace app\index\controller; class Index { public function index() { return 'Hello,World!'; } } ~~~ >[success]### 提示: > * * * * * > 根據類的命名空間可以快速定位文件位置,在`ThinkPHP5.0`的規范里面,命名空間其實對應了文件的所在目錄,`app`命名空間通常代表了文件的起始目錄為`application`,而`think`命名空間則代表了文件的起始目錄為`thinkphp/library/think`,后面的命名空間則表示從起始目錄開始的子目錄。 我們訪問URL地址 ~~~ http://tp5.com ~~~ 就會看到`Hello,World!`的輸出結果。 如果要訪問一個駝峰命名的控制器,例如我們把上面的例子改成一個`HelloWorld`控制器。 ~~~ <?php namespace app\index\controller; class HelloWorld { public function index($name = 'World') { return 'Hello,' . $name . '!'; } } ~~~ 默認情況下正確的方法是使用下面的URL進行訪問 ~~~ http://tp5.com/index.php/index/hello_world ~~~ 下面的訪問地址是錯誤的 ~~~ http://tp5.com/index.php/index/HelloWorld ~~~ ![](https://box.kancloud.cn/53358a74210f3ad08afcc0c7d53b03d8_766x485.png) 因為默認的URL訪問是不區分大小寫的,全部都會轉換為小寫的控制器名,除非你在應用配置文件中,設置了關閉url自動轉換如下: ~~~ 'url_convert' => false, ~~~ 那么就可以正常訪問 ~~~ http://tp5.com/index.php/index/HelloWorld ~~~ 如果要繼承一個公共的控制器類,可以使用: ~~~ <?php namespace app\index\controller; use app\index\controller\Base; class Index extends Base { public function index() { return 'Hello,World!'; } } ~~~ 可以為操作方法定義參數,例如: ~~~ <?php namespace app\index\controller; class Index { public function index($name = 'World') { return 'Hello,' . $name . '!'; } } ~~~ 當我們帶`name`參數訪問入口文件地址(例如 `http://tp5.com?name=ThinkPHP`)的時候,在瀏覽器中可以看到如下輸出: `Hello,ThinkPHP!` 控制器類可以包括多個操作方法,但如果你的操作方法是`protected`或者`private`類型的話,是無法直接通過URL訪問到該操作的,也就是說只有`public`類型的操作方法才是可以通過URL訪問的。 我們來驗證下,把`Index`控制器類的方法修改為: ~~~ <?php namespace app\index\controller; class Index { public function hello() { return 'hello,thinkphp!'; } public function test() { return '這是一個測試方法!'; } protected function hello2() { return '只是protected方法!'; } private function hello3() { return '這是private方法!'; } } ~~~ 當我們訪問如下URL地址的時候,前面兩個是正常訪問,后面兩個則會顯示異常。 ~~~ http://tp5.com/index.php/index/index/hello http://tp5.com/index.php/index/index/test http://tp5.com/index.php/index/index/hello2 http://tp5.com/index.php/index/index/hello3 ~~~ 當我們訪問`hello2`和`hello3`操作方法后的結果都會顯示類似的異常信息: ![](https://box.kancloud.cn/bbb4dd03b8b6a95ddd4129cd56db00ca_1162x716.png) 異常頁面包含了詳細的錯誤信息,是因為開啟了調試模式,如果關閉調試模式的話,看到的默認信息如下: ![](https://box.kancloud.cn/ceb999e12c1f654c259699b02f3649b0_852x175.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看