Laravel大型项目系列教程(五)之文章和标签管理

Laravel大型项目系列教程(五)之文章和标签管理

本节教程将大概完成文章和标签管理。

1.文章管理

首先创建管理后台文章列表视图:

$ php artisan generate:view admin.articles.list

修改views/admin/articles/list.blade.php:

@extends(‘_layouts.default’)@section(‘main’)==>>Author></thead><tbody>@foreach ($articles as $article)=>><td>@foreach ($article->tags as $tag)>name }}</span>@endforeach=’>>=’==”am-icon-pencil”></span> Edit</a>{{ Form::open(array(‘url’ => ‘article/’ . $article->id, ‘method’ => ‘DELETE’, ‘style’ => ‘display: inline;’)) }}=>=”am-icon-remove”></span> Delete</button>{{ Form::close() }}</td></tr>@endforeach>=======> > $(function() {$(‘[id^=delete]’).on(‘click’, function() {$(‘.am-modal-bd’).text(‘Sure you want to delete it?’);$(‘#my-confirm’).modal({relatedTarget: this,onConfirm: function(options) {$(this.relatedTarget).parent().submit();},onCancel: function() {}});}); });</script>@stop

在nav.blade.php中增加一个Articles的超链接:

($=’) }}”>Articles</a></li>

创建一个管理员控制器,在app/controllers下创建一个名为AdminController.php的文件,修改:

\{return View::make(‘admin.articles.list’)->with(‘articles’, Article::with(‘user’, ‘tags’)->orderBy(‘created_at’, ‘desc’)->get())->with(‘page’, ‘articles’);}}

在Route::group(array(‘prefix’ => ‘admin’)中增加:

Route::get(‘articles’, ‘AdminController@articles’);

管理文章可以重用上节教程写的业务逻辑,修改下ArticleController.php,把destroy()中最后的Redirect::to(‘home’)改成Redirect::back(), 再修改一下home.blade.php,加一个是否是管理员的判断,这样当点击作者跳转到用户主页时,除了作者自己管理员也能操作文章:

@if ($user->id == Auth::id() or Auth::user()->is_admin)

现在点击导航栏的Articles,就会出现所有的文章:

这样管理员就可以操作所有的文章了。

我们还可以再修改下admin/users/list.blade.php,当点击用户列表的昵称时也会跳转到用户主页:

::>{{{ $user->nickname }}}</a>

现在访问用户列表页面:

2.显示标签列表

创建一个标签列表视图:

$ php artisan generate:view admin.tags.list

修改admin/tags/list.blade.php:

@extends(‘_layouts.default’)@section(‘main’)==>>CreateDateTime></thead><tbody>@foreach ($tags as $tag)>>>>=’==”am-icon-pencil”></span> Edit</a>{{ Form::open(array(‘url’ => ‘tag/’ . $tag->id, ‘method’ => ‘DELETE’, ‘style’ => ‘display: inline;’)) }}=>=”am-icon-remove”></span> Delete</button>{{ Form::close() }}</td></tr>@endforeach>=======> > $(function() {$(‘[id^=delete]’).on(‘click’, function() {$(‘.am-modal-bd’).text(‘Sure you want to delete it?’);$(‘#my-confirm’).modal({relatedTarget: this,onConfirm: function(options) {$(this.relatedTarget).parent().submit();},onCancel: function() {}});}); });</script>@stop

再在nav.blade.php中增加Tags选项:

($=’) }}”>Tags</a></li>

在Route::group(array(‘prefix’ => ‘admin’)中增加:

Route::get(‘tags’, ‘AdminController@tags’);

在AdminController.php中增加:

public function tags() {, Tag::all()->orderBy(‘count’, ‘desc’));}

现在点击导航栏上方的Tags超链接:

3.修改标签

创建修改标签的视图:

$ php artisan generate:view tags.edit请打开窗口,让我的灵魂与你的灵魂相拥。

Laravel大型项目系列教程(五)之文章和标签管理

相关文章:

你感兴趣的文章:

标签云: