summerblue/administrator
介绍
使用 Laravel Administrator 来构建 LaraBBS 管理员后台,管理员可以在后台完成用户、话题和回复的 CURD 操作,还可完成用户权限分配、修改站点设置等任务。
安装
- 使用 Composer 安装
composer require "summerblue/administrator:9.*"- 发布资源文件
php artisan vendor:publish --provider="Frozennode\Administrator\AdministratorServiceProvider"会生成:
config/administrator.php —— 配置信息;
public/packages/summerblue/administrator —— 前端资源文件,这是用来做页面渲染的。
- 配置信息讲解
config/administrator.php
<?php
use Illuminate\Support\Facades\Auth;
return array(
// 后台的 URI 入口
'uri' => 'admin',
// 后台专属域名,没有的话可以留空
'domain' => '',
// 应用名称,在页面标题和左上角站点名称处显示
'title' => env('APP_NAME', 'Laravel'),
// 模型配置信息文件存放目录
'model_config_path' => config_path('administrator'),
// 配置信息文件存放目录
'settings_config_path' => config_path('administrator/settings'),
/*
* 后台菜单数组,多维数组渲染结果为多级嵌套菜单。
*
* 数组里的值有三种类型:
* 1. 字符串 —— 子菜单的入口,不可访问;
* 2. 模型配置文件 —— 访问 `model_config_path` 目录下的模型文件,如 `users` 访问的是 `users.php` 模型配置文件;
* 3. 配置信息 —— 必须使用前缀 `settings.`,对应 `settings_config_path` 目录下的文件,如:默认设置下,
* `settings.site` 访问的是 `administrator/settings/site.php` 文件
* 4. 页面文件 —— 必须使用前缀 `page.`,如:`page.pages.analytics` 对应 `administrator/pages/analytics.php`
* 或者是 `administrator/pages/analytics.blade.php` ,两种后缀名皆可
*
* 示例:
* [
* 'users',
* 'E-Commerce' => ['collections', 'products', 'product_images', 'orders'],
* 'Settings' => ['settings.site', 'settings.ecommerce', 'settings.social'],
* 'Analytics' => ['E-Commerce' => 'page.pages.analytics'],
* ]
*/
'menu' => [
'用户与权限' => [
'users',
],
],
/*
* 权限控制的回调函数。
*
* 此回调函数需要返回 true 或 false ,用来检测当前用户是否有权限访问后台。
* `true` 为通过,`false` 会将页面重定向到 `login_path` 选项定义的 URL 中。
*/
'permission' => function () {
// 只要是能管理内容的用户,就允许访问后台
return Auth::check() && Auth::user()->can('manage_contents');
},
/*
* 使用布尔值来设定是否使用后台主页面。
*
* 如值为 `true`,将使用 `dashboard_view` 定义的视图文件渲染页面;
* 如值为 `false`,将使用 `home_page` 定义的菜单条目来作为后台主页。
*/
'use_dashboard' => false,
// 设置后台主页视图文件,由 `use_dashboard` 选项决定
'dashboard_view' => '',
// 用来作为后台主页的菜单条目,由 `use_dashboard` 选项决定,菜单指的是 `menu` 选项
'home_page' => 'users',
// 右上角『返回主站』按钮的链接
'back_to_site_path' => '/',
// 当选项 `permission` 权限检测不通过时,会重定向用户到此处设置的路径
'login_path' => 'login',
// 允许在登录成功后使用 Session::get('redirect') 将用户重定向到原本想要访问的后台页面
'login_redirect_key' => 'redirect',
// 控制模型数据列表页默认的显示条目
'global_rows_per_page' => 20,
// 可选的语言,如果不为空,将会在页面顶部显示『选择语言』按钮
'locales' => [],
);下面着重讲下两个选项:permission —— 生产环境中,请谨慎定义好访问权限,否则将造成安全威胁;menu —— 后台管理菜单,后面新增 Model 管理时,我们将会频繁修改此选项。
- 创建必要的文件夹
Administrator 会监测 settings_config_path 和 model_config_path 选项目录是否能正常访问,否则会报错,故我们先使用以下命令新建目录:
mkdir -p config/administrator/settings
touch config/administrator/settings/.gitkeep在空文件夹中放置 .gitkeep 保证了 Git 会将此文件夹纳入版本控制器中。