## 第5節 搭建博客的前臺、后臺
### 5.1 修改默認路由
*D:\wamp\www\newblog.com\app\Http\routes.php*
~~~
Route::get('/', function () {
return view('welcome');
});
Route::auth();
Route::get('/home', 'HomeController@index');
~~~
修改為:
~~~
Route::auth();
Route::get('/', 'HomeController@index');
~~~
#### 查看HomeController的index()
~~~
public function index()
{
return view('home');
}
~~~
`return view('home');` 很好理解,就是返回 `home` 的視圖。
更多關于視圖:<http://d.laravel-china.org/docs/5.2/views>
> 我們這里就不深入講解視圖的內容了,因為該部分其實很簡單,我們直接使用他們。
打開 `home.blade.php` 視圖文件:
*D:\wamp\www\newblog.com\resources\views\home.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">Dashboard</div>
<div class="panel-body">
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection
~~~
現在訪問首頁,會自動跳轉到登錄頁:`http://newblog.com/login`,這是中間件起的作用。
我們去掉強制登錄的話,可以注釋中間件的引入。
*D:\wamp\www\newblog.com\app\Http\Controllers\HomeController.php*
~~~
public function __construct()
{
// $this->middleware('auth');
}
~~~
#### 同步github
~~~
git add -A
git commit -m 'route'
git push
git checkout master
git merge route
git push
git branch -d route
~~~
### 5.2 向視圖文件輸出數據
*D:\wamp\www\newblog.com\app\Http\Controllers\HomeController.php*
~~~
public function index()
{
return view('home')->withArticles(\App\Models\Article::all());
}
~~~
*D:\wamp\www\newblog.com\resources\views\home.blade.php*
在視圖文件中,使用 `{{ dd($articles) }}` 打印傳遞過來的 `$articles`
~~~
@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">Dashboard</div>
<div class="panel-body">
{{ dd($articles) }}
</div>
</div>
</div>
</div>
</div>
@endsection
~~~
查看效果:

#### 保險起見,我們創建一個分支 `mvc`
### 5.3 修改視圖文件
*D:\wamp\www\newblog.com\resources\views\home.blade.php*
~~~
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12" style="text-align:center; padding-bottom: 10px;">
<h1><a href="{{ url('/') }}">我的第一個Laravel博客</a></h1>
<p>本來可以靠才華,卻任性的要靠實力! by 波哥</p>
</div>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">文章列表</div>
<div class="panel-body">
<table class="table">
<tr>
<th>文章編號</th>
<th>文章標題</th>
<th>作者</th>
<th>創建時間</th>
</tr>
@foreach($articles as $article)
<tr>
<td>{{ $article->id }}</td>
<td>{{ $article->title }}</td>
<td>{{ $article->user_id }}</td>
<td>{{ date('Y-m-d H:i:s', $article->created_time) }}</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
</div>
</div>
@endsection
~~~

博客的前臺列表頁顯示,就大功告成啦!當然也可以添加上一個分頁,后面,我們再來做完善的事情。
### 5.4 開始搭建博客后臺
#### 控制器
Artisan命令:
~~~
php artisan make:controller Admin/HomeController
~~~
生成后臺的控制器文件:`D:\wamp\www\newblog.com\app\Http\Controllers\Admin\HomeController.php`
#### 添加路由
后臺的頁面是需要置于`登錄以后才可以訪問`,所以防止在 `auth` 中間件下:
*D:\wamp\www\newblog.com\app\Http\routes.php*
~~~
Route::group(['middleware' => 'auth', 'namespace' => 'Admin', 'prefix' => 'admin'], function() {
Route::get('/', 'HomeController@index');
});
~~~
**新建方法:**
*D:\wamp\www\newblog.com\app\Http\Controllers\Admin\HomeController.php*
~~~
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class HomeController extends Controller
{
public function index()
{
return view('admin/home');
}
}
~~~
**新建視圖**
*D:\wamp\www\newblog.com\app\Http\Controllers\Admin\HomeController.php*
~~~
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12" style="text-align:center; padding-bottom: 10px;">
<h1><a href="{{ url('admin') }}">后臺</a></h1>
<p>本來可以靠才華,卻任性的要靠實力! by 波哥</p>
</div>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<ul>
<li>
<a href="{{ url('admin/article') }}" class="btn btn-lg btn-success col-xs-2">管理文章</a>
</li>
</ul>
</div>
</div>
</div>
@endsection
~~~
當前效果:

**登錄后跳轉到后臺首頁**
*D:\wamp\www\newblog.com\app\Http\Controllers\Auth\AuthController.php*
~~~
protected $redirectTo = '/';
~~~
修改Wie
~~~
protected $redirectTo = 'admin';
~~~