## 控制器
为了替代在路由文件中以闭包的形式定义所有的请求处理逻辑,我们使用控制器类来组织这些行为。控制器能将相关的请求处理逻辑组成一个单独的类,控制器被存放在 `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` 按照这个思维来写代码,不管以后多复杂的代码逻辑都是按照这个来衍生。