<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 控制器定義 控制器文件通常放在`application/module/controller`下面,類名和文件名保持大小寫一致,并采用駝峰命名(首字母大寫)。 一個典型的控制器類定義如下: ~~~ <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { return 'index'; } } ~~~ >[danger] 為了更方便使用,控制器類建議繼承系統的控制器基類`think\Controller`,雖然無需繼承也可以使用。 控制器類文件的實際位置是 ~~~ application\index\controller\Index.php ~~~ 訪問URL地址是(假設沒有定義路由的情況下) ~~~ http://localhost/index.php/index ~~~ 如果你的控制器是`HelloWorld`,并且定義如下: ~~~ <?php namespace app\index\controller; class HelloWorld { public function index() { return 'hello,world!'; } } ~~~ 控制器類文件的實際位置是 ~~~ application\index\controller\HelloWorld.php ~~~ 訪問URL地址是(假設沒有定義路由的情況下) ~~~ http://localhost/index.php/index/hello_world ~~~ 如果你期望通過 ~~~ http://localhost/index.php/index/HelloWorld ~~~ 可以訪問,那么必須關閉URL的自動轉換設置 ~~~ // 是否自動轉換URL中的控制器和操作名 'url_convert' => false, ~~~ ## 控制器的命名空間 控制器類的所在命名空間為`app\module\controller`,其中根命名空間`app`為系統默認,并且只能通過環境變量設置更改,例如我們可以在`.env`配置文件中設置: ~~~ APP_NAMESPACE = application ~~~ 則實際的控制器類應該更改定義如下: ~~~ <?php namespace application\index\controller; class Index { public function index() { return 'index'; } } ~~~ >[danger] 只是命名空間改變了,但實際的文件位置和文件名并沒有改變。 ## 單一模塊控制器 在應用配置文件`app.php`中設置 ~~~ // 是否支持多模塊 'app_multi_module' => false, ~~~ 可以啟用單一模塊,那么控制器的命名空間中不需要模塊名了,類的定義就變成了 ~~~ <?php namespace app\controller; class Index { public function index() { return 'index'; } } ~~~ 控制器類文件的實際位置則變成 ~~~ application\controller\Index.php ~~~ ## 渲染輸出 默認情況下,控制器的輸出全部采用`return`的方式,無需進行任何的手動輸出,系統會自動完成渲染內容的輸出。 下面都是有效的輸出方式: ~~~ <?php namespace app\index\controller; class Index { public function hello() { // 輸出hello,world! return 'hello,world!'; } public function json() { // 輸出JSON return json($data); } public function read() { // 渲染默認模板輸出 return view(); } } ~~~ > 控制器一般不需要任何輸出,直接return即可。 ## 輸出轉換 默認情況下,控制器的返回輸出不會做任何的數據處理,但可以設置輸出格式,并進行自動的數據轉換處理,前提是控制器的輸出數據必須采用`return`的方式返回。 如果控制器定義為: ~~~ <?php namespace app\index\controller; class Index { public function hello() { return 'hello,world!'; } public function data() { return ['name'=>'thinkphp','status'=>1]; } } ~~~ 當我們設置輸出數據格式為JSON: ~~~ // 默認輸出類型 'default_return_type' => 'json', ~~~ 我們訪問 ~~~ http://localhost/index.php/index/Index/hello http://localhost/index.php/index/Index/data ~~~ 輸出的結果變成: ~~~ "hello,world!" {"name":"thinkphp","status":1} ~~~ 默認情況下,控制器在ajax請求會對返回類型自動轉換,默認為json 如果我們控制器定義 ~~~ <?php namespace app\index\controller; class Index { public function data() { return ['name'=>'thinkphp','status'=>1]; } } ~~~ 我們訪問 ~~~ http://localhost/index.php/index/Index/data ~~~ 輸出的結果變成: ~~~ {"name":"thinkphp","status":1} ~~~ ## 多級控制器 支持任意層次級別的控制器,并且支持路由,例如: ~~~ <?php namespace app\index\controller\user; use think\Controller; class Blog extends Controller { public function index() { return 'index'; } } ~~~ 該控制器類的文件位置為: ~~~ application/index/controller/user/Blog.php ~~~ 訪問地址可以使用 ~~~ http://serverName/index.php/index/user.blog/index ~~~ 由于URL訪問不能訪問默認的多級控制器(可能會把多級控制器名誤識別為URL后綴),因此建議所有的多級控制器都通過路由定義后訪問,如果要在路由定義中使用多級控制器,可以使用: ~~~ \think\Route::get('user/blog','index/user.blog/index'); ~~~ ## 自動定位控制器 如果你使用了多級控制器的話,可以設置`controller_auto_search`參數開啟自動定位控制器,便于URL訪問,首先在應用配置文件中設置: ~~~ 'controller_auto_search' => true, ~~~ 然后定義控制器如下: ~~~ <?php namespace app\index\controller\user; use think\Controller; class Blog extends Controller { public function index() { return 'index'; } } ~~~ 我們就可以直接訪問下面的URL地址了: ~~~ http://serverName/index.php/index/user/Blog ~~~ ## 控制器初始化 如果你的控制器類繼承了系統控制器基類(`\think\Controller`)的話,可以定義控制器初始化方法`initialize`,該方法會在調用控制器的方法之前首先執行,如非必要,不建議直接修改控制器的架構函數。 例如: ~~~ <?php namespace app\index\controller; use think\Controller; class Index extends Controller { protected function initialize() { echo 'init<br/>'; } public function hello() { return 'hello'; } public function data() { return 'data'; } } ~~~ >[danger] `initialize`方法不需要任何返回值 如果訪問 ~~~ http://localhost/index.php/index/Index/hello ~~~ 會輸出 ~~~ init hello ~~~ 如果訪問 ~~~ http://localhost/index.php/index/Index/data ~~~ 會輸出 ~~~ init data ~~~
                  <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>

                              哎呀哎呀视频在线观看