在本篇文章中,我们将尝试构建一个带后台的简单博客系统。我们将会使用到 路由、MVC、Eloquent ORM 和 blade 视图系统。
简单博客系统规划
我们在教程一中已经新建了一个继承自 Eloquent Model 类的 Article 类,使用 migration 建立了数据表并使用 seeder 填入了测试数据。我们的博客系统暂时将只管理这一种资源:后台需要使用账号密码登录,进入后台之后,可以新增、修改、删除文章;前台显示文章列表,并在点击标题之后显示出文章全文。
下面我们正式开始。
搭建前台
前台的搭建是最简单的,我先带大家找找感觉。
修改路由
删掉
将Route::get('/home','HomeController@index')->name('home');
改为 Route::get('/','HomeController@index')->name('home');
,现在我们系统的首页就落到了 App\Http\Controllers\HomeController
类的 index
方法上了。
查看 HomeController 的 index 函数
将 learnlaravel5/app/Http/Controllers/HomeController.PHP
的 index 函数我们之前加的 Exception 那行代码删除,就只剩一行代码了:return view('home');
,这个很好理解,返回名叫 home 的视图给用户。这个视图文件在哪里呢?在 learnlaravel5/resources/views/home.blade.PHP
,blade 是 Laravel 视图引擎的名字,会对视图文件进行加工。
blade 浅析
blade 引擎会对视图文件进行预处理,帮我们简化一些重复性很高的 echo、foreach 等 PHP 代码。blade 还提供了一个灵活强大的视图组织系统。打开 home.blade.PHP
:
<div <span style="color: #0000ff">class="container">
<div <span style="color: #0000ff">class="row">
<div <span style="color: #0000ff">class="col-md-8 col-md-offset-2">
<div <span style="color: #0000ff">class="panel panel-default">
<div <span style="color: #0000ff">class="panel-heading">Dashboard
<div <span style="color: #0000ff">class</span>="panel-body"><span style="color: #000000">
@</span><span style="color: #0000ff">if</span> (session('status'<span style="color: #000000">))
</span><div <span style="color: #0000ff">class</span>="alert alert-success"><span style="color: #000000">
{{ session(</span>'status'<span style="color: #000000">) }}
</span></div><span style="color: #000000">
@</span><span style="color: #0000ff">endif</span><span style="color: #000000">
You are logged in</span>!
</div>
</div>
</div>
</div>