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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM