zoukankan      html  css  js  c++  java
  • Laravel建站04--建立后台文章管理

    路由配置

    Route::group(['middleware' => 'auth', 'namespace' => 'Admin', 'prefix' => 'admin'], function() {
    
    Route
    ::get('/', 'HomeController@index'); // 匹配包含 "/admin/" 的 URL Route::resource('article', 'ArticleController');// 匹配包含 "/admin/article" 的 URL
    Route::post('/upload', 'UploadController@index');// 匹配包含 "/admin/upload" 的 URL
    });

    路由组 允许共享路由属性,例如中间件和命名空间等,我们没有必要为每个路由单独设置共有属性,共有属性会以数组的形式放到 Route::group 方法的第一个参数中。

    中间件('middleware' => 'auth'),验证用户是否登录。

    命名空间 ('namespace' => 'Admin') ,指定组内所有控制器公共的 PHP命名空间。

    路由前缀 ('prefix' => 'admin'),可以给每个路由组中的路由加上指定的 URI 前缀。这里我们给路由组中所有的 URI 加上路由前缀 admin 。

    资源路由 (Route::resource), 可以匹配一组URI。匹配的详情如下。

    动作URI操作路由名称
    GET /article index article.index
    GET /article/create create article.create
    POST /article store article.store
    GET /article/{article} show article.show
    GET /article/{article}/edit edit article.edit
    PUT/PATCH /article/{article} update article.update
    DELETE /article/{article} destroy article.destroy

     controller

    php artisan make:controller Admin/HomeController
    php artisan make:controller Admin/UploadController
    php artisan make:controller Admin/ArticleController

    执行以上三条命令,建立后台使用的controller。第一个是后台首页,第二个是处理上传,最后一个是管理文章。

    在ArticleController里需要建立与资源路由匹配的各种方法才能实现资源路由的各种功能。

    public function index()
    {
        $articles = DB::table('articles')
                ->select('id', 'body', 'title')
                ->orderBy('id', 'desc')
                ->paginate(5);
        return view('admin/article/index', ['articles' => $articles]);
    }

    以上是文章列表功能,这里指定了表名、列、排序和分页。然后取出的数据放到view里显示。

    这里集成了七牛实现上传到云的功能。

    执行以下命令可以安装七牛PHP的SDK

    composer require qiniu/php-sdk

    把从七牛申请的密钥写在.env里,然后controller里可以用env函数来读取。这样可以保证发布的版本不会泄露自己的重要信息。


    view

    在resources/views 目录下建立admin目录,然后建立home.blade.php,用来显示后台首页。然后admin目录下建立article子目录,并在其中建立create.blade.php 、edit.blade.php 、index.blade.php 三个文件。用来实现新建文章、编辑文章和文章列表。

    要点:

    • 前台显示文章正文有两种方法:{!! $article->body !!} 和 {{  $article->body  }},前面的可以原样输出正文的HTML,而后面的会把HTML转义,从而在浏览器前台输出HTML代码,而不是让浏览器解析HTML。
    • ajax提交图片上传时,一定要在header中附加上X-CSRF-TOKEN,否则后台如果没收到的话,会报错。写法参考:'X-CSRF-TOKEN': '{{ csrf_token() }}'

    挑选了各环节的一些要点写出来在博客中,源代码可以在我的GitHub上获取到。欢迎交流。

  • 相关阅读:
    JS伪3D 图形透视效果
    源码安装apache及配置转发
    SpringSecutiry权限管理手册
    解决SMARTFORMS 中table 控件单行跨页的问题
    Cluster Table
    uva-133 The Dole Queue
    第三届蓝桥杯C++本科B组决赛解题报告(更新中)
    uva-673 Parentheses Balance
    VS2010不能编译SQLServer2005的Microsoft.SQLServer.ManagedDTS.dll的解决方法
    IOS设计模式学习(21)享元
  • 原文地址:https://www.cnblogs.com/timeismoney/p/6861503.html
Copyright © 2011-2022 走看看