Laravel5.5 搭建簡單的社區(十)--發表評論

首先創建一個評論控制器:CommentsController,並且添加resource路由:

php artisan make:controller CommentsController
Route::resource('comments', 'CommentsController');

在show.blade.php中展示發表評論界面:

複製代碼

                <hr />
                <!-- 判斷用戶是否登陸 -->
                @if(\Auth::check())
                    {!! Form::open(['method'=>'post','url'=>'/comments']) !!}
                    <!-- 隱式傳遞discussion_id -->
                    {!! Form::hidden('discussion_id',$discussion->id) !!}
                    <!--- Body Field --->
                    <div class="form-group">
                        {!! Form::textarea('body', null, ['class' => 'form-control']) !!}
                    </div>
                    <!-- 提交 -->
                    {!! Form::submit('發表評論',['class' => 'btn btn-primary form-control']) !!}
                    {!! Form::close() !!}
                @else
                    <a href="/user/login" class="btn btn-block btn-success">登錄發表評論</a>
                @endif

複製代碼

接下來我們定義Request:

php artisan make:request StoreCommentsRequest

複製代碼

    public function rules()
    {
        return [
            // 評論內容非空
            'body' => 'required',
            // discussion_id(隱式傳遞) 非空
            'discussion_id' => 'required',
        ];
    }

複製代碼

在CommentsController中保存數據:

複製代碼

    public function store(Requests\StoreCommentsRequest $request)
    {
        // 將數據存入數據庫
        Comment::create(array_merge($request->all(), ['user_id' => \Auth::user()->id]));
        // 重定向
        return redirect()->action('PostsController@show',['id' => $request->get('discussion_id')]);
    }

複製代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章