## 第4节 路由
~~~
git checkout -b route
~~~
### 简介
Laravel 5.2 中路由的位置:`D:\wamp\www\newblog.com\app\Http\routes.php`
~~~
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::auth();
Route::get('/home', 'HomeController@index');
~~~
路由:<http://d.laravel-china.org/docs/5.2/routing>
### 4.1 基础路由
~~~
Route::get('/', function () {
return view('welcome');
});
~~~
最基本的 Laravel 路由仅接受 URI 和一个闭包。
上面自带的路由就是访问放在的根目录时,返回一个 `resources\views\welcome.blade.php` 视图文件。
~~~
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Welcome</div>
<div class="panel-body">
Your Application's Landing Page.
</div>
</div>
</div>
</div>
</div>
@endsection
~~~
关于视图的内容,我们在后面的章节再详述吧!
是不是可以看到 “Your Application's Landing Page.”内容输出了?
![](https://box.kancloud.cn/71745a3e25b898258f0259ee208e515f_1046x414.png)
其实这种闭包路由使用的不多,我们使用的更多的是控制器路由。
~~~
Route::get('/home', 'HomeController@index');
~~~
关于 `Route::auth();` 这条路由,其实是系统自定义好的。在:`D:\wamp\www\newblog.com\vendor\laravel\framework\src\Illuminate\Routing\Router.php`
~~~
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\AuthController@showLoginForm');
$this->post('login', 'Auth\AuthController@login');
$this->get('logout', 'Auth\AuthController@logout');
// Registration Routes...
$this->get('register', 'Auth\AuthController@showRegistrationForm');
$this->post('register', 'Auth\AuthController@register');
// Password Reset Routes...
$this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
$this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail');
$this->post('password/reset', 'Auth\PasswordController@reset');
}
~~~
看下:` $this->get('login', 'Auth\AuthController@showLoginForm');` 这条路由访问的页面效果:
![](https://box.kancloud.cn/2ee69b18a00b2b685118919c89de49a4_1046x541.png)
它实际上访问的是 `AuthController` 控制器的 `showLoginForm` 方法。
*\vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php*
~~~
public function showLoginForm()
{
$view = property_exists($this, 'loginView')
? $this->loginView : 'auth.authenticate';
if (view()->exists($view)) {
return view($view);
}
return view('auth.login');
}
~~~
是不是可以感受到路由的强大之处?好了,这里先不要纠结,后面也就慢慢可以理解了。
关于更多的路由知识,大家可以借助手册进一步了解,如路由群组、路由别名等概念,这里就不做详述了!
### 4.2 使用 artisan 查看路由列表
命令:
~~~
php artisan route:list
~~~
![](https://box.kancloud.cn/dffc23e371f032305c4783f1c21b957f_1366x485.png)