PHP-Laravel控制器使用(C)

  • 2020 年 3 月 27 日
  • 筆記

三、控制器使用©

控制器主要的作用主要負責接收用戶輸入請求,調度模型處理數據最後利用視圖展示數據。

1、控制器文件寫在哪裡?

其位置位於app/Http/Controllers

其中Auth存放的是框架自帶的Auth認證相關的示例控制器文件,controller.php文件是框架的基類控制器。

2、控制器文件如何命名?

命名可以參考Auth文件夾中給定的示例文件:

文件的命名方式:大駝峰+Controller.php

友情提示:在寫的時候不要帶「+」。

3、結構程式碼如何書寫?【重點】

注意:其控制器基礎結構程式碼,不需要自己去手動編寫,可以通過artisan命令行來自動生成。 因此需要記住對應的命令:

#php artisan make:controller 控制器名(大駝峰)Controller

不要寫「.php」。 例如:使用artisan命令創建TestController.php文件。先確定命令:

#php artisan make:controller TestController

其中已經寫好的結構程式碼:

後續如果需要更多的控制器只需要重複的執行上述的artisan命令即可。

注意:控制器可以分目錄管理。

4、控制器路由(項目以該方式為主)

即,如何使用路由規則調用控制器下的方法,而不再走回調函數。路由設置格式基本相同,只是將匿名函數換成『控制器類名@方法名』定義格式如下:

Route::請求方法(『路由表達式』,』控制器@方法');

例如:在Test控制器中創建test1方法,其中輸出phpinfo資訊

編寫路由規則: 設定路由: /test1

效果如下:

5、接收用戶輸入【重點】

接收用戶輸入的類:IlluminateSupportFacadesInput Facades:「門面」的思想。門面是介於一個類的實例化與沒有實例化中間的一個狀態。其實是類的一個介面實現。在這個狀態下可以不實例化類但是可以調用類中的方法。說白了就是靜態方法的調用。

Input::get(『參數的名字』, 『如果參數沒有被傳遞使用該默認值』)    //類似php里三元運算符  Input::all(): 獲取所有的用戶的輸入  Input::get('參數的名字'): 獲取單個的用戶的輸入  Input::only([ 『id』,』age』]): 獲取指定幾個用戶的輸入  Input::except([ 『id』,』age』]): 獲取指定幾個用戶的輸入以外的所有的參數  Input::has('name'):判斷某個輸入的參數是否存在    上述方法既可以獲取get中的資訊,也可以獲取post中資訊。

在laravel中如果需要使用facades的話,但是又不想寫那麼長的引入操作:

Use IlluminateSupportFacadesInput

則可以在config/app.php中定義長串的別名(在aliases數組中定義別名):

案例:在Home /index/test2路由下測試上述的方法

定義路由:

/home/index/test2

編寫test2方法測試上述的獲取資訊的操作: 給test2路由傳遞一系列的參數(get傳值)

在Laravel中友好輸出函數:dd(需要列印的內容);  dd=dump + die  dd函數之後的內容將不會繼續執行;

在Laravel中除了Input類可以獲取用戶的輸入,Request也可以獲取用戶輸入。