## 控制器
為了替代在路由文件中以閉包的形式定義所有的請求處理邏輯,我們使用控制器類來組織這些行為。控制器能將相關的請求處理邏輯組成一個單獨的類,控制器被存放在 `app/Http/Controllers` 目錄下。
前幾節我們通過 `路由 -> 視圖`,當我們邏輯、獲取數據過多時放在路由里面就不合適了,現在我們以 `路由 -> 控制器 -> 視圖` 的方式來代替上節的代碼。
### 創建控制器
通過 Artisan 命令工具里的 `make:controller` 創建一個 `PagesController`:
```php
php artisan make:controller PagesController
```
### 添加三個方法
```php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PagesController extends Controller
{
public function home()
{
$codes = [
'php',
'java',
'javascript',
'C',
'python',
'<h1>React</h1>'
];
return view('welcome')->with(compact('codes'));
}
public function about()
{
return view('about');
}
public function news()
{
return view('news');
}
}
```
### 修改路由
```php
Route::get('/', 'PagesController@home');
Route::get('/about', 'PagesController@about');
Route::get('/news', 'PagesController@news');
```
### 總結
理解 `路由 -> 控制器 -> 視圖` 方式創建視圖,這是最基本的邏輯方式,新人學習 `Laravel` 按照這個思維來寫代碼,不管以后多復雜的代碼邏輯都是按照這個來衍生。