路由配置

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上获取到。欢迎交流。

Laravel建站04--建立后台文章管理的更多相关文章

  1. Laravel建站03--建立前台文章列表和文章详情

    经过了前面的开发环境搭建和数据库配置.git配置的准备工作以后,现在可以开始动作做点什么了. 先从简单的开始,那就先来个文章列表和详情页吧. 这期间可以学习到路由.建立model.controller ...

  2. PHPCMS v9在后台文章管理列表添加类别

    进入PHPCMS v9后台—内容,进入PHPCMS的文章管理列表,要实现在文章标题前显示文章类别,就是可以直接在文章列表里看到类别,不需要点击进入编辑页面才可以看到,如下图: PHPCMS v9在后台 ...

  3. Laravel建站01--开发环境部署

    内容导航 安装git 安装composer 安装Laravel 既然是开发环境,就需要源代码管理.这里使用git来管理. 一:部署开发环境之前安装git 在 Linux 上安装git 如果你想在 Li ...

  4. Laravel建站05--缓存、时间日期处理包

    缓存 Laravel 给多种缓存系统提供丰富而统一的 API,缓存配置信息位于 config/cache.php,在这个文件中你可以为你的应用程序指定默认的缓存驱动,Laravel 支持当前流行的缓存 ...

  5. 潭州课堂25班:Ph201805201 django 项目 第三十六课 后台文章管理(课堂笔记)

    get 请求, 1,获取文章标签 , 2,拿到前台传来的值, 3,根据前台传来的值在数据库中查询 4.,返回数据到前台,渲染, 分页算法 : 在 utils 下创建  paginator_script ...

  6. Laravel建站02--配置Laravel

    Laravel项目的根目录下有.env文件,如果没有可以把.env.example改名为.env 这个文件是配置文件,可以把app_key.数据库.redis缓存等配置信息写在这个文件里. 目前5.4 ...

  7. PHPCMS快速建站系列之后台内容自定义修改

    一.后台登录页面 背景图:\statics\images\admin_img 中的 login_bg.jpg 底部版权信息:\phpcms\languages\en 中的 system.lang.ph ...

  8. php之cms后台文章管理及显示

    public function index(){ C('TOKEN_ON',false);//关闭表单令牌 读取配置 //查询指定id的栏目信息 $id=I('get.id');//类别ID $top ...

  9. 设置帝国cms文章标题 真正符合百度建站标准

    百度建站指南中有提到内容页的标题设置,标题描述清晰最好包含主站和频道信息:内容标题_频道名称_网站名称.帝国cms文章标题一般默认是内容标题_网站名称,那么如何调用当前文章的频道名称(分类名称)呢? ...

随机推荐

  1. jsonp跨域请求发布出去

    最近在做运动城项目,这一个项目下面有多个子项目,如主数据项目,pos项目等.主数据项目的域名为www.topmall.com,POS项目的域名为pos.topmall.com.即两个项目的主域名相同, ...

  2. BZOJ2653 middle 【二分 + 主席树】

    题目 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你一个 长度为n的序列s.回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c ...

  3. FOJ Problem 2253 Salty Fish

                                                                                                        ...

  4. mybatis如何传入一个list参数

    <!-- 7.2 foreach(循环List<String>参数) - 作为where中in的条件 -->  <select id="getStudentLi ...

  5. webconfig连接串的使用与用代码写连接串的使用

    原文发布时间为:2008-07-25 -- 来源于本人的百度文章 [由搬家工具导入] 1、使用web.config中设置连接串 在web.config中<configuration>... ...

  6. MySQL 5.7.17绿色版安装

    下载地址 :https://dev.mysql.com/downloads/mysql/   ,需要oracle帐号 下载  Windows (x86, 64-bit), ZIP Archive 是个 ...

  7. React-Native解决ListView 在Android手机上无吸顶效果

    stickySectionHeadersEnabled={true} stickyHeaderIndices={[0]}

  8. js - 锚点-scrollIntoView()

    document.getElementById("view").scrollIntoView(false);

  9. VUE之命令行报错:Expected indentation of 4 spaces but found 6

    使用vue时候,经常被一大片警告惊呆了,这是webpack默认的语法检查插件ESLint在做警告, [ESLint是一个语法规则和代码风格的检查工具,可以用来保证写出语法正确.风格统一的代码] 但是我 ...

  10. 洛谷——P1126 机器人搬重物

    P1126 机器人搬重物 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个N*M的网格,有 ...