一:安裝
參考鏈接: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();