Laravel控制器

在MVC框架中,字母「C」代表控制器。它充當視圖和模型之間的指揮中心(或橋樑)。

創建一個控制器

打開您正在使用的操作系統上的命令提示符或終端,然後鍵入以下命令使用 Artisan CLI (命令行接口)來創建控制器。

php artisan make:controller --plain 

替換  爲您的控制器的名稱。我們將創建一個簡單的構造器使用傳遞一個參數— plain。 如果不希望創建一個普通的構造函數,可以忽略參數。 創建的構造函數在 app/Http/Controllers. 你會看到一些基本的編碼已經自動生成了,你可以自定義添加編碼。創建控制器可以通過routes.php文件中使用以下語法調用。

語法

Route::get(‘base URI’,’controller@method’);

示例

第1步- 執行以下命令來創建用戶控制器 - UserController。

php artisan make:controller UserController

第2步 - 成功執行後,您會收到以下輸出。
Laravel控制器

第3步 - 你可以在 app/Http/Controller/UserController.php 看到創建控制器已經自動生成一些基本的代碼,您可以根據需要添加自己的編碼。 

'auth', 'uses' => 'UserController@showProfile' \]); 在這裏,我們在路由配置文件分配身份驗證中間件使用到 UserController。 ### 控制器的構造函數中分配中間件 middleware('auth'); } } 在這裏,我們將身份驗證分配使用中間件在UserController的構造方法。 ### 示例 第1步 - 添加以下行到 app/Http/routes.php 文件文件並保存。 routes.php 'First', 'uses' => 'UserController@showPath' \]); 第2步 - 通過執行以下行創建一個名爲FirstMiddleware 的中間件。 php artisan make:middleware FirstMiddleware 第3步 - 添加新創建一個名爲 FirstMiddleware 的處理方法,下面的代碼在 app/Http/Middleware/FirstMiddleware.php 。 FirstMiddleware.php First Middleware'; return $next($request); } } 第4步 - 通過執行以下行創建一個叫作 SecondMiddleware 的中間件。 php artisan make:middleware SecondMiddleware 第5步 - 添加以下代碼在新創建一個處理方法 SecondMiddleware 在 app/Http/Middleware/SecondMiddleware.php. SecondMiddleware.php Second Middleware'; return $next($request); } } 註冊上面兩個中間件,打開文件: **app/Http/Kernel.php** protected $routeMiddleware = \[ 'auth' => \\App\\Http\\Middleware\\Authenticate::class, 'auth.basic' => \\Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth::class, 'can' => \\Illuminate\\Foundation\\Http\\Middleware\\Authorize::class, 'guest' => \\App\\Http\\Middleware\\RedirectIfAuthenticated::class, 'throttle' => \\Illuminate\\Routing\\Middleware\\ThrottleRequests::class, 'First' => \\App\\Http\\Middleware\\FirstMiddleware::class, 'Second' => \\App\\Http\\Middleware\\SecondMiddleware::class, \]; 第6步 - 通過執行以下行創建一個名爲 UserController 的控制器。 php artisan make:controller UserController 第7步 - URL成功執行後,您會看到以下輸出 - ![Laravel控制器](https://asset.1ju.org/cmsstatic/laravel-19.png) 第8步 - 將以下代碼複製到 app/Http/UserController.php 文件。 app/Http/UserController.php middleware('Second'); } public function showPath(Request $request){ $uri = $request->path(); echo '
URI: '.$uri; $url = $request->url(); echo '
'; echo 'URL: '.$url; $method = $request->method(); echo '
'; echo 'Method: '.$method; } } 第9步 - 現在,如果還沒有啓動PHP的內部Web服務器,可通過執行以下命令。 php artisan serve 第10步 - 請訪問以下網址。 https://asset.1ju.org/usercontroller/path 第11步- 將出現如下面的輸出結果。 ![Laravel控制器](https://asset.1ju.org/cmsstatic/laravel-20.png) Restful 資源控制器 ----------------- 通常情況下當開發一個應用,我們需要執行CRUD(創建,讀取,更新,刪除)操作。Laravel使這項工作更容易做到的。只需創建一個控制器,而Laravel會提供所有的CRUD操作的方法。您也可以註冊一個路由的所有方法在routes.php文件中。 ### 示例 第1步 - 通過執行以下命令創建一個名爲 myController 的控制器。 php artisan make:controller MyController 第2步 - 添加以下代碼到文件:app/Http/Controllers/MyController.php **app/Http/Controllers/MyController.php** ’); 替換 使用你給定控制器類名。 控制器的方法名應該是類似 GET或POST HTTP動詞開頭。如果以 get 開始,它只會處理 get 請求,如果它使用 post 開駋那麼將處理post請求。在HTTP動詞後,可以方法使用任何名稱,但它應遵循 URI 的格式。 ### 示例 第1步 - 執行下面的命令來創建一個控制器。其類名稱爲 ImplicitController。這個類你也可以使用其它的任何名稱。 php artisan make:controller ImplicitController 第2步 - 成功執行後,會產生以下輸出 - 第3步 - 將以下代碼複製到 app/Http/Controllers/ImplicitController.php 文件。 **app/Http/Controllers/ImplicitController.php** myclass = $myclass; } public function index(){ dd($this->myclass); } } 第3步 - 訪問以下網址來測試構造器注入。 **https://asset.1ju.org/myclass** 第4步 - 輸出結果如下面圖所示。 ![Laravel控制器](https://asset.1ju.org/cmsstatic/laravel-21.png) 方法注入 -------- 除了構造器注入,也可以輸入 - 在你的控制器操作方法觸發依賴。 ### 示例 步驟1 - 下面的代碼添加到 app/Http/routes.php 文件。 **app/Http/routes.php** class MyClass{ public $foo = 'bar'; } Route::get('/myclass','ImplicitController@index'); 第2步 - 下面的代碼添加到 app/Http/Controllers/ImplicitController.php 文件。 **app/Http/Controllers/ImplicitController.php**