PHP:Laravel-admin的搭建和初步使用
一:安装
参考链接:https://laravel-admin.org/docs/zh/1.x/installation
注意:先需要确保安装了laravel,并设置好数据库链接
# 安装获取资源
composer require encore/laravel-admin:1.*
# 发布资源
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
# 安装admin
php artisan admin:install
安装完成之后,可以通过localhost/admin来访问。(用户名admin密码admin)测试是否安装成功。
二:配置
app/Admin/routes.php文件用来配置后台路由。
app/Admin/bootstrap.php 是laravel-admin的启动文件。
app/Admin/Controllers目录用来存放后台控制器文件,该目录下的HomeController.php文件是后台首页的显示控制器,ExampleController.php为实例文件。
后台所需的前端静态文件在/public/vendor/laravel-admin目录下。
config/admin.php 后台配置管理文件
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel-admin name
|--------------------------------------------------------------------------
|
| 登录页面的大标题,显示在登录页面
|
*/
'name' => 'Laravel-admin',
/*
|--------------------------------------------------------------------------
| Laravel-admin logo
|--------------------------------------------------------------------------
|
| 管理页面的logo设置,如果要设置为图片,可以设置为img标签
| <img src="http://logo-url" alt="Admin logo">'.
|
*/
'logo' => '<b>Laravel</b> admin',
/*
|--------------------------------------------------------------------------
| Laravel-admin mini logo
|--------------------------------------------------------------------------
|
| 当左侧边栏收起时显示的小logo,也可以设置为html标签
|
*/
'logo-mini' => '<b>La</b>',
/*
|--------------------------------------------------------------------------
| Laravel-admin bootstrap setting
|--------------------------------------------------------------------------
|
| 用来设置启动文件
|
*/
'bootstrap' => app_path('Admin/bootstrap.php'),
/*
|--------------------------------------------------------------------------
| Laravel-admin route settings
|--------------------------------------------------------------------------
|
| 后台路由配置,应用在`app/Admin/routes.php`里面
|
*/
'route' => [
'prefix' => 'admin',
'namespace' => 'App\\Admin\\Controllers',
'middleware' => ['web', 'admin'],
],
/*
|--------------------------------------------------------------------------
| Laravel-admin install directory
|--------------------------------------------------------------------------
|
| 后台的安装目录,如果在运行`admin:install`之前修改它,那么后台目录将会是这个配置的目录
|
*/
'directory' => app_path('Admin'),
/*
|--------------------------------------------------------------------------
| Laravel-admin html title
|--------------------------------------------------------------------------
|
| 所有页面的<title>标签内容
|
*/
'title' => 'Admin',
/*
|--------------------------------------------------------------------------
| Access via `https`
|--------------------------------------------------------------------------
|
| 后台是否使用https
|
*/
'https' => env('ADMIN_HTTPS', false),
/*
|--------------------------------------------------------------------------
| Laravel-admin auth setting
|--------------------------------------------------------------------------
|
| 后台用户使用的用户认证配置
|
*/
'auth' => [
'controller' => App\Admin\Controllers\AuthController::class,
'guards' => [
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
'providers' => [
'admin' => [
'driver' => 'eloquent',
'model' => Encore\Admin\Auth\Database\Administrator::class,
],
],
// Add "remember me" to login form
'remember' => true,
// 登陆之后的跳转地址
'redirect_to' => 'auth/login',
// 登陆验证的排除URI
'excepts' => [
'auth/login',
'auth/logout',
],
],
/*
|--------------------------------------------------------------------------
| Laravel-admin upload setting
|--------------------------------------------------------------------------
|
| 在Form表单中的image和file类型的默认上传磁盘和目录设置,其中disk的配置会使用在
| config/filesystem.php里面配置的一项disk
|
*/
'upload' => [
// `config/filesystem.php`中设置的disk
'disk' => 'admin',
// image和file类型表单元素的上传目录
'directory' => [
'image' => 'images',
'file' => 'files',
],
],
/*
|--------------------------------------------------------------------------
| Laravel-admin database settings
|--------------------------------------------------------------------------
|
| 安装laravel-admin之后,默认会在数据库中新建下面9张表,包括用户、菜单、角色、权限、
| 日志和它们之间的关系表,下面的配置是标的名字和对应的模型
|
| 其中的`connection`配置为下面几个模型所使用的数据库连接,对应`config/database.php`
| 中的connections里面设置的connection,
|
| 如果你想修改数据库里面这几个表的名字,可以在运行`admin:install`之前修改它们
| 如果install之后想修改,那么可以手动在数据库中修改,然后再修改下面几项的值
|
| 如果你需要在表里面增加字段,可以自定义模型,然后替换掉下面的模型设置即可,控制器的修改
| 也可以通过覆盖路由的方式、覆盖掉内置的路由配置
|
*/
'database' => [
// Database connection for following tables.
'connection' => '',
// User tables and model.
'users_table' => 'admin_users',
'users_model' => Encore\Admin\Auth\Database\Administrator::class,
// Role table and model.
'roles_table' => 'admin_roles',
'roles_model' => Encore\Admin\Auth\Database\Role::class,
// Permission table and model.
'permissions_table' => 'admin_permissions',
'permissions_model' => Encore\Admin\Auth\Database\Permission::class,
// Menu table and model.
'menu_table' => 'admin_menu',
'menu_model' => Encore\Admin\Auth\Database\Menu::class,
// Pivot table for table above.
'operation_log_table' => 'admin_operation_log',
'user_permissions_table' => 'admin_user_permissions',
'role_users_table' => 'admin_role_users',
'role_permissions_table' => 'admin_role_permissions',
'role_menu_table' => 'admin_role_menu',
],
/*
|--------------------------------------------------------------------------
| User operation log setting
|--------------------------------------------------------------------------
|
| 操作日志记录的配置
|
*/
'operation_log' => [
// 是否开启日志记录、默认打开
'enable' => true,
/*
* 允许记录请求日志的HTTP方法
*/
'allowed_methods' => ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],
/*
* 不需要被记录日志的url路径
*/
'except' => [
'admin/auth/logs*',
],
],
/*
|--------------------------------------------------------------------------
| User default avatar
|--------------------------------------------------------------------------
|
| 默认头像
|
*/
'default_avatar' => '/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg',
/*
|--------------------------------------------------------------------------
| Admin map field provider
|--------------------------------------------------------------------------
|
| model-form中map组件所使用的地图配置,支持三个地图服务商: "tencent", "google", "yandex".
|
*/
'map_provider' => 'google',
/*
|--------------------------------------------------------------------------
| Application Skin
|--------------------------------------------------------------------------
|
| 皮肤设置,参考https://adminlte.io/docs/2.4/layout设置
|
| 支持的设置为:
| "skin-blue", "skin-blue-light", "skin-yellow", "skin-yellow-light",
| "skin-green", "skin-green-light", "skin-purple", "skin-purple-light",
| "skin-red", "skin-red-light", "skin-black", "skin-black-light".
|
*/
'skin' => 'skin-blue-light',
/*
|--------------------------------------------------------------------------
| Application layout
|--------------------------------------------------------------------------
|
| 布局设置,参考https://adminlte.io/docs/2.4/layout
|
| 支持的设置为: "fixed", "layout-boxed", "layout-top-nav", "sidebar-collapse",
| "sidebar-mini".
|
*/
'layout' => ['sidebar-mini', 'sidebar-collapse'],
/*
|--------------------------------------------------------------------------
| Login page background image
|--------------------------------------------------------------------------
|
| 登录页面的背景图设置
|
*/
'login_background_image' => '',
/*
|--------------------------------------------------------------------------
| Show version at footer
|--------------------------------------------------------------------------
|
| 是否在页面的右下角显示当前laravel-admin的版本
|
*/
'show_version' => true,
/*
|--------------------------------------------------------------------------
| Show environment at footer
|--------------------------------------------------------------------------
|
| 是否在页面的右下角显示当前的环境
|
*/
'show_environment' => true,
/*
|--------------------------------------------------------------------------
| Menu bind to permission
|--------------------------------------------------------------------------
|
| 菜单是否绑定权限
*/
'menu_bind_permission' => true,
/*
|--------------------------------------------------------------------------
| 是否要开启路由权限检查
|--------------------------------------------------------------------------
*/
'check_route_permission' => true,
/*
|--------------------------------------------------------------------------
| 是否要开启菜单可见角色检查
|--------------------------------------------------------------------------
*/
'check_menu_roles' => true,
/*
|--------------------------------------------------------------------------
| Enable default breadcrumb
|--------------------------------------------------------------------------
|
| 是否开启页面的面包屑导航
*/
'enable_default_breadcrumb' => true,
/*
|--------------------------------------------------------------------------
| 是否开启静态资源文件的压缩
|--------------------------------------------------------------------------
*/
'minify_assets' => [
// 不需要被压缩的文件
'excepts' => [
],
],
/*
|--------------------------------------------------------------------------
| 是否要开启侧边栏的菜单搜索
|--------------------------------------------------------------------------
*/
'enable_menu_search' => true,
/*
|--------------------------------------------------------------------------
| 用来设置顶部的文字提示.
|--------------------------------------------------------------------------
*/
'top_alert' => '',
/*
|--------------------------------------------------------------------------
| 设置数据表格的操作列显示类
|--------------------------------------------------------------------------
*/
'grid_action_class' => \Encore\Admin\Grid\Displayers\DropdownActions::class,
/*
|--------------------------------------------------------------------------
| Extension Directory
|--------------------------------------------------------------------------
|
| 如果你要运行`php artisan admin:extend`命令来开发扩展,需要配置这一项,来存放你的扩展文件
*/
'extension_dir' => app_path('Admin/Extensions'),
/*
|--------------------------------------------------------------------------
| Settings for extensions.
|--------------------------------------------------------------------------
|
| 每一个laravel-admin扩展对应的配置,都写在这下面,扩展可以参考 https://github.com/laravel-admin-extensions
|
*/
'extensions' => [
],
];
汉化语言 只需要设置app.config里面的
php 'locale' => 'zh_CN'
即可
三,页面测试
1,先生成数据表model类
php artisan make:model City
2, 生成controller,这里请使用laravel-admin的命令 --model指定对应的model类
php artisan admin:make CityController --model=App\Models\City
3,在 app\Admin\routes.php 里添加route
$router->resource('cities','CityController');
4,去后台菜单里添加路由,然后刷新页面访问就OK了。
四,列表按钮禁用
// 禁用批量删除按钮
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete();
});
});
//去掉复选框
$grid->disableRowSelector();
//禁用行操作
$grid->disableActions();
//禁用新增按钮
$grid->disableCreateButton();
//关闭行操作-删除
$grid->actions(function ($actions) {
$actions->disableDelete();
});
//禁用导出
$grid->disableExport();
//禁用筛选
$grid->disableFilter();