使用 laravel-admin 配置后台管理系统
内容有点多,就不说别的了。。
需要一个简单的后台管理系统,对接数据库中的用户信息表,完成基本的增删改查操作。
最好支持权限管理;有便捷的接口可供调用(不需要深度定制);前端界面和交互美观简洁,足够“现代化”;架构明晰,配置简单,可快速成型等等。
几经查找,感觉 laravel-admin 这个框架还不错。虽说文档算不上完善,小踩几坑,没怎么太费事就构建好了。值得记录一下。
后台管理系统
一、安装 Laravel 环境
laravel-admin 需要 PHP 7+
和 Lavavel 5.5+
,我当前使用的是 VirtualBox 虚拟机里的 Ubuntu 19.04
系统,配置起来还是比较方便的。
Laravel 官方的定义是 The PHP Framework For Web Artisans ,优雅和快速成型。依赖于 PHP >= 7.1.3
和一些 PHP 扩展组件。可以使用 Linux 系统自带的包管理器进行安装,命令如下:
$ sudo apt-get install php7.2 php7.2-bcmath php7.2-json php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip php7.2-common
安装 composer 并配置国内镜像
Composer 是 PHP 语言的依赖管理工具,类似于 Node.js 下的 npm 。后面需要用到的 Laravel 、laravel-admin 及其相关的依赖项都可以通过 composer
命令安装。
$ sudo apt-get install composer
为了提高访问速度,可以把 composer 的镜像源改为国内版本,命令如下(全局配置):
$ composer config -g repo.packagist composer https://packagist.laravel-china.org
安装 Laravel 并初始化项目
使用 composer
命令安装 Laravel :
composer global require laravel/installer
将 Laravel 安装路径添加到 PATH 环境变量:
$ echo export PATH="$PATH:~/.config/composer/vendor/bin" >> ~/.zshrc && source ~/.zshrc
初始化 Laravel 项目:
$ laravel new admin
以上步骤完成后,进入 admin
项目目录,运行 $ php artisan serve
命令即可开启一个最基本的 Laravel 站点。
配置数据库
安装 mysql 数据库:
$ sudo apt-get install mysql-server
创建数据库 admin
并授权给测试账户(用户名 test_user
,密码 test_password
):
mysql> CREATE DATABASE admin;
Query OK, 1 row affected (0.00 sec)mysql> GRANT ALL ON admin.* to test_user IDENTIFIED BY 'test_password';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
修改数据库配置文件
编辑 config/database.php
文件(已经默认使用 mysql 数据库),修改 mysql 配置部分,将 url
改为如下形式:
'url' => env('DATABASE_URL', 'mysql://test_user:test_password@127.0.0.1/admin'),
(数据库 URL 的格式为 mysql://用户名:密码@IP地址/数据库名
)
二、安装 laravel-admin
数据库配置完成后,即可按照以下步骤安装配置 laravel-admin 。
在 admin
目录下,使用 composer
命令安装 laravel-admin :
$ composer require encore/laravel-admin
发布资源:
$ php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
使用以下命令完成安装:
$ php artisan admin:install
运行服务查看效果:
$ php artisan serve
访问 http://127.0.0.1:8000/admin
,使用用户名 admin
和密码 admin
登录,效果如下:
laravel-admin
安装完成后,laravel-admin 所有的配置都在 config/admin.php
文件中(如站点名称、logo、登录界面的背景等),而项目文件的安装目录为 app/Admin
,目录结构如下:
app/Admin
├── Controllers
│ ├── ExampleController.php
│ └── HomeController.php
├── bootstrap.php
└── routes.php
其中 app/Admin/routes.php
文件用来配置后台路由;
app/Admin/bootstrap.php
是 laravel-admin 的启动文件;
app/Admin/Controllers
目录用来存放后台控制器文件,该目录下的HomeController.php
文件是后台首页的显示控制器。
三、一些必要的配置
项目进行到这里,已经具备了一个后台管理系统的所有基本要素,只是在添加或者修改用户时,会报出下图所示的 Config error
,需要添加一个 Disk
配置:
Disk error
编辑 config/filesystems.php
文件,在 'disks'
配置下添加如下内容:
'admin' => ['driver' => 'local','root' => public_path('upload'),'visibility' => 'public','url' => env('APP_URL').'/public/puload/',],
disk config
中文配置
配置界面语言为中文可以修改 config/app.php
文件,将其中的 locale => en
改为 locale => zh-CN
即可。
其他常用的配置如站点名称、页面布局等可以编辑 config/admin.php
文件,文件中的注释信息非常详细,根据需求直接修改即可。
四、绑定自己的数据库
前面生成的算是演示用的示例页面,如果需要绑定和管理自己的数据库表格,操作也是比较简单的。
创建数据库表格
在之前创建的 admin
数据库中添加名为 employee
的表格:
mysql> CREATE TABLE employee (-> id int(6) unsigned AUTO_INCREMENT PRIMARY KEY,-> number int(6) unsigned NOT NULL UNIQUE,-> name varchar(10) NOT NULL,-> mail varchar(60) UNIQUE,-> password varchar(30),-> department varchar(40) NOT NULL DEFAULT ''-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
创建模型文件
$ php artisan make:model Employee
上述命令会创建 app/Employee.php
模型文件,将该文件改为如下内容:
<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Employee extends Model
{protected $table = 'employee';public $timestamps = false;
}
PS:关于模型的使用可以参考 Laravel 官方文档
添加控制器
通过以下命令创建一个对接 app/employee
模型的控制器:
$ php artisan admin:make EmployeeController --model=App\\Employee
App\Admin\Controllers\EmployeeController created successfully.
添加路由
编辑路由配置文件 app/Admin/routers.php
,在根 URL 的路由下添加如下一行内容:
$router->resource('employee', EmployeeController::class);
添加网页菜单
访问 http://127.0.0.1:8000/admin/auth/menu
,添加页面左侧的菜单项,用于指向前面创建的后台数据。
menu
上述步骤完成后,访问 http://127.0.0.1:8000/admin/employee
,最终效果如下:
employee
五、优化筛选和密码显示
上面完成的项目中,筛选按钮只支持通过 ID 搜索,密码也是直接显示。这些和表格相关的行为都可以通过修改 app/Admin/Controllers/EmployeeController.php
文件进行控制。
修改 EmployeeController.php
文件中对表格相关行为的定义:
protected function grid()
{$grid = new Grid(new Employee);// 不显示 ID 列//$grid->id('ID');^M$grid->number('工号');^M$grid->name('姓名');^M$grid->mail('邮箱');^M// 隐藏密码列//$grid->password('Password');^M$grid->department('部门');$grid->filter(function($filter){// 去掉默认的 id 过滤器$filter->disableIdFilter();// 添加新的字段过滤器(通过工号过滤)$filter->like('number', '工号');});return $grid;
}
实际效果如下:
自定义表格和筛选
六、nginx 服务器配置
首先需要终止默认安装的 Apache2
服务并安装 nginx
和 php-fpm
:
$ sudo systemctl stop apache2
$ sudo systemctl disable apache2
$ sudo apt-get install nginx php7.2-fpm
创建新的站点配置文件(/etc/nginx/sites-available/admin.conf
)并写入以下内容:
server {listen 80;server_name 127.0.0.1;root <your-project-path>/public;add_header X-Frame-Options "SAMEORIGIN";add_header X-XSS-Protection "1; mode=block";add_header X-Content-Type-Options "nosniff";index index.html index.htm index.php;charset utf-8;location / {try_files $uri $uri/ /index.php?$query_string;}location = /favicon.ico { access_log off; log_not_found off; }location = /robots.txt { access_log off; log_not_found off; }error_page 404 /index.php;location ~ \.php$ {fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;include fastcgi_params;}location ~ /\.(?!well-known).* {deny all;}
}
使用以下命令启用新的站点配置并重启 nginx 服务:
$ sudo ln -s /etc/nginx/sites-available/admin.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx
需要注意的是,app/storage
目录的属主应该与运行 nginx 服务的用户(默认为 www-data
)一致,可通过以下命令修改:
$ sudo chown -R www-data storage
参考资料
laravel-admin 官方文档
Laravel 官网
使用 laravel-admin 配置后台管理系统相关推荐
- cms php vue 开源_lucms —— 基于 Vue 和 Laravel 开发的后台管理系统
lucms -- 基于 Vue 和 Laravel 开发的后台管理系统 由 Ucer 创建于2年前, 最后更新于 1年前 版本号 #1 36802 views 8 likes 0 collects 项 ...
- 拥抱开源,Vue Admin Work后台管理系统免费开源啦
前言 各们前端开发的小伙伴们,你们好,我是Vue Admin Work后台管理系统的主要开发者和维护者,从今年6月份开始我们一直在开发一套后台管理系统,旨在帮助更多的小伙伴学习提升和给许多中小型公司节 ...
- php 后台配置系统,使用 laravel-admin 配置后台管理系统
内容有点多,就不说别的了.. 需要一个简单的后台管理系统,对接数据库中的用户信息表,完成基本的增删改查操作. 最好支持权限管理:有便捷的接口可供调用(不需要深度定制):前端界面和交互美观简洁,足够&q ...
- cms php vue 开源_lucms - vue 与 Laravel 开发的后台管理系统
lucms 项目概述 产品名称:lucms demo: 没钱续费服务器,暂不提供演示 最新稳定版本 v2.0.5 lucms 是一个基于 laravel5.5* 与 iviewjs 开发的一套后台管理 ...
- Naive Ui Admin 发布后台管理系统 高颜值Admin骨架 看看是不是你想要的
简介 Naive Ui Admin 是一个免费开源的中后台模版,使用了最新的vue3,vite2,TypeScript等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考. 特性 最新技术栈 ...
- 模板配置--后台管理系统
模板配置 模板下载 layui https://www.layui.com/doc/modules/laytpl.html bootcss https://www.bootcss.com/ 下载一个模 ...
- ktv管理系统_7天撸完KTV点歌系统,含后台管理系统(完整版)
最近手有点痒琢磨着做个啥,朝思暮想还是写个KTV点歌系统,模拟了一下KTV开户的思路,7天累死我了,不过技术点还挺多的,希望你可以看完(〜^㉨^)〜 用Node(Express)教你写KTV点歌系统, ...
- 分布式电商项目五:使用人人开源搭建前后分离的后台管理系统
分布式电商项目五:使用人人开源搭建前后分离的后台管理系统 现在我们开始搭建一个后台管理系统,使用的是码云上面的开源项目:人人开源 需要使用两个开源项目:fast和fast-vue. 使用git把需要的 ...
- 7天撸完KTV点歌系统,含后台管理系统(完整版)
最近手有点痒琢磨着做个啥,朝思暮想还是写个KTV点歌系统,模拟了一下KTV开户的思路,7天累死我了,不过技术点还挺多的,希望你可以看完(〜㉨)〜 用Node(Express)教你写KTV点歌系统,包括 ...
- 最棒的 7 个 Laravel admin 后台管理系统推荐 - 卡拉云
本文完整版:<最棒的 7 个 Laravel admin 后台管理系统推荐> 目录 Laravel admin 后台管理系按类型选择 脚手架型 CRUD 接口型 可视化编程 新一代低代码开 ...
最新文章
- expand yourself
- python 爬虫抓站
- ubuntu再次体验之【美化】--修改主题、字体、字体大小
- 【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
- 第 1 节:前端面试指南 — 简历篇
- android折叠listview,android – 如何在listview中展开和折叠项目
- 宝塔面板备份网站方法
- 开发自己的PHP MVC框架(一)
- 基于Linux内核红黑树的TR069参数解析工具:树形结构+CPE RPC支持
- 最大流应用问题(深大算法实验6)报告+代码
- 微信小程序源码分享合集-1
- CVE-2018-18311 阿里云漏洞修复 RHSA-2019:0109-Important: perl secur
- 文件服务器挂在网上,(6)NAS简述 - 服务器 【已迁移到IXPUB】 - ITPUB论坛-专业的IT技术社区...
- 爬虫------12306
- 武侠玄幻之无极剑仙(二)
- 【有福利,手慢无】相册网送您免费洗50张照片
- C++如何获取虚函数表(vtbl)的内容及虚成员函数指针存放原理
- C语言-字符0、数字0和‘\0’的区别
- UEFI开发与调试---edk2中的应用模块/库模块/驱动模块
- 【SIM卡】Sim 卡掉卡
热门文章
- [iOS] UIScrollView (UIWebView) 截长屏功能实现
- STM32F1移植到STM32F407 (LD3320)
- 分享一个linux下的steam的rpm安装包的链接
- ceph 纠删码解读和实践
- 基于Python实现的Alpha-Beta剪枝算法
- gcode 解析入门1-1
- 蔡勒公式与Python
- cad化气路图_气路图符号cad下载
- 低代码平台开发 python_低组词_低的多音字组词,低是多音字吗,低组词有哪些
- How to Create Your Own HDR Environment Maps