首页 > 代码库 > Laravel5.1 搭建简单的社区(六)--发表帖子
Laravel5.1 搭建简单的社区(六)--发表帖子
首先我们先登陆我们的用户,访问/discussions/create 路由,因为这条路由在resource声明了 所以我们直接在PostsController中的create方法中直接实现逻辑就好:
public function create() { return view(‘forum.create‘); }
相应的 创建create页面:
@extends(‘app‘) @section(‘content‘) <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2" role="main"> {!! Form::open([‘method‘=>‘post‘,‘url‘=>‘/discussions/‘]) !!} <!--- Title Field ---> <div class="form-group"> {!! Form::label(‘title‘, ‘Title:‘) !!} {!! Form::text(‘title‘, null, [‘class‘ => ‘form-control‘]) !!} </div> <!--- Body Field ---> <div class="form-group"> {!! Form::label(‘body‘, ‘Body:‘) !!} {!! Form::textarea(‘body‘, null, [‘class‘ => ‘form-control‘]) !!} </div> <!-- 提交 --> {!! Form::submit(‘提交‘,[‘class‘ => ‘btn btn-primary form-control‘]) !!} {!! Form::close() !!} <div> @if($errors->any()) <ul class="list-group"> @foreach($errors->all() as $error) <li class="list-group-item list-group-item-danger">{{ $error }}</li> @endforeach </ul> @endif </div> </div> </div> </div> @stop
我们需要一个request来指定一些规则:
class StorePostsRequest extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ ‘title‘ => ‘required‘, ‘body‘ => ‘required|min:10‘, ]; } }
现在当点击提交按钮的时候会调用PostsController的store方法:
public function store(Requests\StorePostsRequest $request) { // 取到数据 $user_ids = [ ‘user_id‘ => \Auth::user()->id, ‘last_user_id‘ => \Auth::user()->id, ]; // 存入数据库 $discussion = Discussion::create(array_merge($request->all(), $user_ids)); // 重定向 return redirect()->action(‘PostsController@show‘, $discussion->id); }
这样就完成了发布帖子的功能,但是我们发现发布帖子是需要登录进来才可以的,所以我们要用middleware来保护一下文章的增删改查方法,我们在PostsController中使用系统自带的auth中间件:
public function __construct() { // 使用中间件 声明只有4个方法受保护 $this->middleware(‘auth‘, [‘only‘=>[ ‘create‘, ‘store‘, ‘update‘, ‘edit‘, ]]); }
为了方便,我们把退出登录的方法也写出来:
// 退出登陆 Route::get(‘/user/logout‘, ‘UsersController@logout‘);
public function logout() { // 退出登陆 \Auth::logout(); // 重定向回首页 return redirect(‘/‘); }
Laravel5.1 搭建简单的社区(六)--发表帖子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。