laravel5.4 后台文章的增删改查
阅读原文时间:2021年04月21日阅读:1

路由

/*文章*/
Route::group(array('prefix'=>'article'),function(){

    // 文章显示
    Route::any('/lst', '\App\Http\Controllers\Admin\ArticleController@lst');

    //文章添加页面
    Route::any('/add', '\App\Http\Controllers\Admin\ArticleController@add');
    //文章添加逻辑
    Route::any('/store', '\App\Http\Controllers\Admin\ArticleController@store');

    //图片上传
    Route::any('/upload', '\App\Http\Controllers\Admin\CommonController@upload');


    //文章修改页面
    Route::any('/edit/{post}', '\App\Http\Controllers\Admin\ArticleController@edit');
    //文章修改逻辑
    Route::any('/update/{post}', '\App\Http\Controllers\Admin\ArticleController@update');


    //文章删除
    Route::any('/delete/{post}', '\App\Http\Controllers\Admin\ArticleController@delete');
});

控制器

<?php

namespace App\Http\Controllers\Admin;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Model\Articles;
use Illuminate\Support\Facades\Input;
use App\Http\Controllers\Controller;

class ArticleController extends CommonController

{

    public function lst()
    {

        //通过模型查找数据
        $data = Articles::orderBy('id','desc')->paginate(3);



        return view('admin.article.lst',compact('data'));
    }



    //any.admin/user/add   添加文章页面
    public function add()
    {
        //查找栏目
        $cateres = DB::table('cates')->get();



        return view('admin.article.add',compact('cateres'));
    }



    //添加文章逻辑
    public function store()
    {

        $input = Input::except('_token');
        $input['updated_at'] = time();
        $input['time'] = time();


        /*$title=\Request::input('title');
        $author=\Request::input('author');

        $content=\Request::input('art_content');
        $updated_at=time();
        $time=time();*/


        /*$res=DB::table('articles')->insert(['title'=>$title,'author'=>$author,'art_content'=>$content,'updated_at'=>$updated_at,'time'=>$time]);*/

        $res = Article::create($input);
        if($res){
            return redirect('admin/article/lst');
        }else{
            return back()->with('errors','文章添加失败,请稍后重试!');
        }


    }


    // 修改文章页面
    public function edit($id)
    {

        $field = Article::find($id);


        //先查找
        $cateres = DB::table('cates')->get();
        return view('admin.article.edit',compact('cateres','field'));
    }

    //修改文章逻辑
    public function update($id)
    {
        /*$title=\Request::input('title');
        $author=\Request::input('author');
        $content=\Request::input('art_content');

        $data=[

            'title'=>$title,
            'author'=>$author,
            'content'=>$content,
            'updated_at'=>time(),
            'time'=>time()
        ];*/



        $input = Input::except('_token','_method');


        $re = Article::where('id',$id)->update($input);
        if($re){
            return redirect('admin/article/lst');
        }else{
            return back()->with('errors','修改文章失败,请稍后重试!');
        }
    }



    //  删除
    public function delete($id)
    {

        $re = Article::where('id',$id)->delete();

        if($re){
            return redirect('admin/article/lst');
        }else{
            return back()->with('errors','删除文章失败,请稍后重试!');
        }

    }
}

模型

<?php

namespace App\Http\Model;

use Illuminate\Database\Eloquent\Model;

class Articles extends Model
{
    //


    //这个默认的是对应article数据表
    protected $table='articles';
    protected $primaryKey='id';
    public $timestamps=false;
    protected $guarded=[];

    public function cate()
    {
        return $this->belongsTo('App\Http\Model\Cates', 'cateid', 'id');
    }

}

视图

<form class="form-horizontal" role="form" action="{{url('admin/article/store')}}" method="post">
                                        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

                                        <div class="form-group">
                                            <label for="username" class="col-sm-2 control-label no-padding-right">文章标题</label>
                                            <div class="col-sm-6">
                                                <input class="form-control"  placeholder="" name="title" required="" type="text">
                                            </div>
                                        </div>

                                        <div class="form-group">
                                            <label class="col-sm-2 control-label no-padding-right">所属栏目</label>
                                            <div class="col-sm-6">
                                                <select name="cateid">
                                                    <option value="">请选择栏目</option>
                                                    @foreach ($cateres as $v)
                                                        <option value="{{$v->id}}">{{$v->catename}}</option>
                                                    @endforeach
                                                </select>
                                            </div>
                                        </div>


                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">文章作者</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" placeholder="" name="author" required="" type="text">
                                            </div>
                                        </div>



                                        <div class="form-group" style="margin-bottom: 200px;">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">文章内容</label>
                                            <div class="col-sm-6">

                                                <textarea id="newsEditor" name="art_content" ></textarea>
                                                <style>
                                                    #newsEditor{
                                                        width:560px;
                                                       height:300px;
                                                    }
                                                </style>
                                                <script type="text/javascript">
                                                    UE.getEditor('newsEditor');
                                                     var content = UE.getPlainTxt();//content就是编辑器的带格式的内容
                                                </script>
                                            </div>
                                        </div>


                                        <div class="form-group">
                                            <div class="col-sm-offset-2 col-sm-10">
                                                <button type="submit" class="btn btn-default">保存信息</button>
                                            </div>
                                        </div>
                                    </form>

<form class="form-horizontal" role="form" action="{{url('admin/article/update/'.$field->id)}}" method="post">
    <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
    <div class="form-group">
        <label for="username" class="col-sm-2 control-label no-padding-right">文章标题</label>
        <div class="col-sm-6">
            <input class="form-control"  placeholder="" name="title" required="" type="text" value="{{$field->title}}">
        </div>
    </div>

    <div class="form-group">
        <label class="col-sm-2 control-label no-padding-right">所属栏目</label>
        <div class="col-sm-6">
            <select name="cateid">
                <option value="">请选择栏目</option>
                @foreach ($cateres as $v)
                    <option @if($v->id == $field->cateid) selected="selected" @else  @endif value="{{$v->id}}">{{$v->catename}}</option>
                @endforeach
            </select>
        </div>
    </div>



    <div class="form-group">
        <label for="group_id" class="col-sm-2 control-label no-padding-right">文章作者</label>
        <div class="col-sm-6">
            <input class="form-control" placeholder="" name="author" required="" type="text" value="{{$field->author}}">
        </div>
    </div>

    {{--<div class="form-group">
        <label for="group_id" class="col-sm-2 control-label no-padding-right">文章缩略图</label>
        <div class="col-sm-6">
            <input class="form-control" placeholder="" name="pic" required="" type="file" value="{{$field->art_thumb}}">
        </div>
    </div>--}}
    <div class="form-group" style="margin-bottom: 200px;">
        <label for="group_id" class="col-sm-2 control-label no-padding-right">文章内容</label>
        <div class="col-sm-6">

            <textarea id="newsEditor" name="art_content">{{$field->art_content}}</textarea>
            <style>
                #newsEditor{
                    width:560px;
                    height:300px;
                }
            </style>
            <script type="text/javascript">
                UE.getEditor('newsEditor');
                var content = UE.getPlainTxt();//content就是编辑器的带格式的内容
            </script>
        </div>
    </div>


    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default">保存信息</button>
        </div>
    </div>
</form>

<div class="row">
    <div class="col-lg-12 col-sm-12 col-xs-12">
        <div class="widget">
            <div class="widget-body">
                <div class="flip-scroll">
                    <table class="table table-bordered table-hover">
                        <thead class="">
                        <tr>
                            <th class="text-center">ID</th>
                            <th class="text-center">所属栏目</th>
                            <th class="text-center">文章标题</th>
                            <th class="text-center">文章作者</th>
                            <th class="text-center">缩略图</th>
                            <th class="text-center">操作日期</th>
                            <th class="text-center">操作</th>


                        </tr>
                        </thead>
                        <tbody>

                        @foreach ($data as $v)
                        <tr>
                            <td align="center">{{$v->id }} </td>
                            <td align="center">{{$v->cate->catename}}</td>
                            <td align="center">{{$v->title}}</td>
                            <td align="center">{{$v->author}}</td>
                            <td align="center">{{$v->art_thumb}}</td>
                            <td align="center">{{date('Y-m-d H:i:s',$v->time)}}</td>

                            <td align="center">
                                <a href="{{url('admin/article/edit/'.$v->id.'')}}" class="btn btn-primary btn-sm shiny">
                                    <i class="fa fa-edit"></i> 编辑
                                </a>
                                <a href="{{url('admin/article/delete/'.$v->id.'')}}" class="btn btn-primary btn-sm shiny">
                                    <i class="fa fa-edit"></i> 删除
                                </a>

                            </td>

                        </tr>
                        @endforeach
                        </tbody>
                    </table>
                </div>
                <div>
                </div>
                {{ $data->links() }}
            </div>
        </div>
    </div>
</div>