php 后台配置系统,使用 laravel-admin 配置后台管理系统

内容有点多,就不说别的了。。

需要一个简单的后台管理系统,对接数据库中的用户信息表,完成基本的增删改查操作。

最好支持权限管理;有便捷的接口可供调用(不需要深度定制);前端界面和交互美观简洁,足够“现代化”;架构明晰,配置简单,可快速成型等等。

几经查找,感觉 laravel-admin 这个框架还不错。虽说文档算不上完善,小踩几坑,没怎么太费事就构建好了。值得记录一下。

a5382761301a

后台管理系统

一、安装 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 登录,效果如下:

a5382761301a

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 配置:

a5382761301a

Disk error

编辑 config/filesystems.php 文件,在 'disks' 配置下添加如下内容:

'admin' => [

'driver' => 'local',

'root' => public_path('upload'),

'visibility' => 'public',

'url' => env('APP_URL').'/public/puload/',

],

a5382761301a

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 模型文件,将该文件改为如下内容:

namespace 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 ,添加页面左侧的菜单项,用于指向前面创建的后台数据。

a5382761301a

menu

上述步骤完成后,访问 http://127.0.0.1:8000/admin/employee ,最终效果如下:

a5382761301a

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;

}

实际效果如下:

a5382761301a

自定义表格和筛选

六、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 /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

参考资料

thinkPHP开发的后台管理系统 主要针对PHP入门级程序员开发适用,主要特点集成了AUTH多对多权限管理控制, 比较细分明确了 权限控制=》权限节点 、角色=》角色权限、管理员=》角色 的管理结构。 后台布局主要应用了Layuid的简明小清新,还支持5种风格切换、全屏浏览、锁屏等炫酷功能。 相信AndPHP.admin 能让你的后台开发也能舒爽起来,另外补充一点,对于目前大多的共享后台都集成封装了如表单、 列表等主要构件方法,说是为了方便快速布置后台,当对于入门来说,学习成本也是有的,阅读性也有牺牲,仁者见仁吧, 就是想告诉大家AndPHP.admin没有这样做,主要好处,多查阅ThinkPHP5.1及Layui2.x文档根据已有文件基本就能活学应用啦!! ( 打脸了,admin2.0对于FORM\LIST进行了方法集成,但保留了1.0的部分硬编输出,你可以更好的应对,快速的开发!) //============= AndPHP内容管理系统基于ThinkPHP、结合Layui等优秀开源项目开发; 将包含系统设置,权限管理,模型管理,数据库管理,栏目管理,会员管理,网站功能,模版管理,微信管理等相关模块。 官网在线演示: http://andphp.com 测试账号:test 测试密码:123456 admin2.0纯净版发布了 ThinkPHP核心框架更新至5.1.12, 精简后台功能模块,极简方便开发者 =)基于后台管理员登录/AUTH权限管理/系统配置后台FORM、LIST公共方法 =)基于前台用户登录/AUTH权限管理/会员中心(集成积分管理、签到等)基本用户操作属性 =) 集成一键安装,localhost/install/index.php 轻度强迫症的我对代码规范有这一定的要求,所以一定程度上做好了备注标示,目前文档整理中,有问题请进QQ群交流学习! About, AndPHP采用ThinkPHP5.15开发,ThinkPHP5.15采用全新的目录结构、架构思想,引入了 很多 的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载。 正因为ThinkPHP的 这些新特性, 从而使得ANDPHP的执行速度成倍提高。 UI方面,AndPHP采用了最受欢迎的Layui,Layui用于开发响应式布局、移动设备优先的 WEB 项目。 简洁、直观、强悍的前端开发框架,让ANDPHP后台界面更加美观,前台布局 更加爽快,开发更迅速、简单。 Tell U, 我们的目标:致力于为个人和中小型企业打造全方位的PHP企业级开发解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值