resource路由

再来优化一下路由部分。每一个访问地址,都要对应一条路由,而且还要自己定义name,实在是非常麻烦啊。那么有没有简便点的办法呢?其实laravel已经帮你准备好了。 方法就在https://laravel.com/docs/5.5/controllers#resource-controllers

web.php 中,所有的指向 IssuesController 的语句都删除,而用一行代替

Route::resource('issues', 'IssuesController');

这一行到底起什么作用?到终端中一看便知。

php artisan route:list

Tips: 如果单独定义的路由,与下面表格中的一模一样。就可以直接使用 resource route来简化代码。

Verb URI Action Route Name 作用
GET /issues index issues.index 列表显示所有的issues
GET /issues/create create issues.create 显示新增issue的表单
POST /issues store issues.store 真正执行新增操作,插入数据库
GET /issues/{issue} show issues.show 显示一条issue
GET /issues/{issue}/edit edit issues.edit 显示编辑issue的表单
PUT/PATCH /issues/{issue} update issues.update 真正执行更新操作,修改数据库
DELETE /issues/{issue} destory issues.destroy 删除issue

再来访问试试,太棒了,所有功能都依然可以正常使用。

时间的展示

数据库中所有的表,运行migrate的时候,都被laravel加上了created_atupdated_at。 这两个字段我们无需任何处理,laravel会自动在新增修改的时候,帮我们填上。

一个小点需要调整,首页活动列表页Issue都没有时间。

welcome/_issue_list.blade.phpissues/index.blade.php中,找到3 days ago,用下面的代码代替:

{{$issue->created_at->diffForHumans()}}