laravel 博客(resource)

Posted 进阶丶之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 博客(resource)相关的知识,希望对你有一定的参考价值。

laravel的资源路由极大的方便了数据库的增删改查

1、创建资源路由

    Route::resource(\'article\',\'ArticleController\');

2、查看。创建好资源路由后,通过artisan命令创建控制器。

   php artisan make:controller ArticleController;

   php artsian route:list   //查看资源路由列表,如图所示

分析一下上面的路由;

①、get方法直接访问admin/article,可以直接访问ArticleController@index; 用于页面的显示,直接提取数据库显示在页面

 public function index(){
    $data = Article::orderBy(\'art_id\',\'desc\')->paginate(5);
    return view(\'admin.article.index\',compact(\'data\'));
 }

②、post方法访问admin/article,访问的是ArticleController@store; 用于数据的添加;(需要csrf认证)

    public function store(){
        $input = Input::except(\'_token\');
        $input[\'art_time\'] = time();
        $rules = [
            \'art_title\' =>\'required\',
            \'art_content\' =>\'required\',
        ];
        $message = [
            \'art_title.required\'=>\'文章标题必须填写\',
            \'art_content.required\' =>\'文章内容必须填写\'
        ];
        $validator = Validator::make($input,$rules,$message);
        if($validator->passes()){
            $re = Article::create($input);
            if($re){
                return redirect(\'admin/article\');
            }else{
                return view(\'admin/article/create\')->with(\'error\',\'添加数据失败\');
            }
        }else{
            return back()->withErrors($validator);
        }

    }

③、get方式访问admin/article/create,访问的是ArticleController@create;用于的添加数据的显示;

   public function create(){
        $cate = Category::tree();
        return view(\'admin.article.add\',compact(\'cate\'));
    }

④、delete方式访问admin/article/{参数},访问的是ArticleController@destroy;用于数据的删除;(需要csrf认证)

 表单提交是需要表明提交方法:
<input type="hidden" name="_method" value="delete">  

public function destroy($art_id){ $re = Article::where(\'art_id\',$art_id)->delete(); if($re){ $data = [ \'status\'=>\'0\', \'msg\' =>\'文章删除成功\' ]; }else{ $data = [ \'status\'=>\'1\', \'msg\' =>\'文章删除失败,稍后重试\' ]; } return $data; }

⑤、put方式提交admin/article/{article};访问的是ArticleController@update,用于更新数据;(需要csrf认证)

<input type="hidden" name="_method" value="put">

    public function update($art_id){
        $input = Input::except(\'_token\',\'_method\');
        $input[\'art_time\'] = time(); 
        $re = Article::where(\'art_id\',$art_id)->update($input);

        if($re){
            return redirect(\'admin/article\');
        }else{
            return back()->with(\'error\',\'文章更新数据失败\');
        }
    }

⑥、get访问admin/article/{article};访问的是ArticleController@show,用于单条数据的显示;

    public function index($id){
        $data = Article::orderBy(\'art_id\',$id)->get(5);
        return view(\'admin.article.show\',compact(\'data\'));
    }

⑦、get方式访问admin/article/{article}/edit;访问的是ArticleController@edit,用于修改数据的显示;

    public function edit($art_id){
        $field = Article::find($art_id);
          $cate = Category::tree();
        return view(\'admin.article.edit\',compact(\'field\',\'cate\'));
    }

 

3、通过资源路可以直接访问以上地址,方便的数据的管理。

以上是关于laravel 博客(resource)的主要内容,如果未能解决你的问题,请参考以下文章

laravel特殊功能代码片段集合

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

laravel5.4+vue2搭建个人博客

LARAVEL - 使用 Route::resource 生成路由时无法使用销毁路由

laravel 表单请求的自定义错误代码

Laravel:如何在控制器的几种方法中重用代码片段