一:laravel_admin 后台构建

一:encore/laravel-admin 扩展包

      先把laravel 项目拉取下来

   再建立一个和项目中的.env文件中设置的数据库同名数据库

  

  encore/laravel-admin 是一个可以快速构建后台管理的扩展包,它提供了页面组件和表单元素等功能,我们只需要使用很少的代码就实现功能完善的后台管理功能。

 

1. 安装

通过 Composer 来引入:

  composer require encore/laravel-admin "1.8.11"

由于 Laravel-Admin 更新比较频繁,且小版本更新也有可能有较大的 API 变化,因此我们使用一个固定的版本;

然后按照官网文档指示,我们还需执行下面两个命令来完成安装:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
php artisan admin:install

 

第一个命令会将 Laravel-Admin 的一些文件发布到我们项目目录中,比如前端 JS/CSS 文件、配置文件等。

第二个命令是执行数据库迁移、创建默认管理员账号、默认菜单、默认权限以及创建一些必要的目录。

 

  • app/Admin/ 是用来放置管理后台的控制器和路由的目录;
  • config/admin.php 是 laravel-admin 的配置文件,我们一会儿会详细解释里面的内容;
  • database/migrations/2016_01_04_173148_create_admin_tables.php 用来创建与后台用户、角色、权限相关的数据库表;
  • public/vendor/ 是 laravel-admin 会用到的一些前端库;
  • resources/lang/* 是语言文件,我们不需要除简体中文以外的语言,可以用下面命令删掉:

rm -rf resources/lang/ar/ resources/lang/az/ resources/lang/en/admin.php resources/lang/es/ resources/lang/fr/ resources/lang/he/ resources/lang/ja/ resources/lang/nl/ resources/lang/pl/ resources/lang/pt/ resources/lang/ru/ resources/lang/tr/ resources/lang/zh-TW/ resources/lang/pt-BR/ resources/lang/fa/ resources/lang/id/ resources/lang/ms/ resources/lang/uk/ resources/lang/ko/ resources/lang/ur/

 

 2. 配置信息详解

请将以下内容替换并仔细阅读代码中的注释:

config/admin.php

<?php

return [

    /*
     * 站点标题
     */
    'name' => 'Laravel Shop',

    /*
     * 页面顶部 Logo
     */
    'logo' => '<b>Laravel</b> Shop',

    /*
     * 页面顶部小 Logo
     */
    'logo-mini' => '<b>LS</b>',

    /*
     * Laravel-Admin 启动文件路径
     */
    'bootstrap' => app_path('Admin/bootstrap.php'),

    /*
     * 路由配置
     */
    'route' => [
        // 路由前缀
        'prefix' => env('ADMIN_ROUTE_PREFIX', 'admin'),
        // 控制器命名空间前缀
        'namespace' => 'App\\Admin\\Controllers',
        // 默认中间件列表
        'middleware' => ['web', 'admin'],
    ],

    /*
     * Laravel-Admin 的安装目录
     */
    'directory' => app_path('Admin'),

    /*
     * Laravel-Admin 页面标题
     */
    'title' => 'Laravel Shop 管理后台',

    /*
     * 是否使用 https
     */
    'secure' => env('ADMIN_HTTPS', false),

    /*
     * Laravel-Admin 用户认证设置
     */
    'auth' => [

        'controller' => App\Admin\Controllers\AuthController::class,

        'guards' => [
            'admin' => [
                'driver'   => 'session',
                'provider' => 'admin',
            ],
        ],

        'providers' => [
            'admin' => [
                'driver' => 'eloquent',
                'model'  => Encore\Admin\Auth\Database\Administrator::class,
            ],
        ],

        // 是否展示 保持登录 选项
        'remember' => true,

        // 登录页面 URL
        'redirect_to' => 'auth/login',

        // 无需用户认证即可访问的地址
        'excepts' => [
            'auth/login',
            'auth/logout',
            '_handle_action_',
        ]
    ],

    /*
     * Laravel-Admin 文件上传设置
     */
    'upload' => [
        // 对应 filesystem.php 中的 disks
        'disk' => 'public',

        'directory' => [
            'image' => 'images',
            'file'  => 'files',
        ],
    ],

    /*
     * Laravel-Admin 数据库设置
     */
    'database' => [

        // 数据库连接名称,留空即可
        'connection' => '',

        // 管理员用户表及模型
        'users_table' => 'admin_users',
        'users_model' => Encore\Admin\Auth\Database\Administrator::class,

        // 角色表及模型
        'roles_table' => 'admin_roles',
        'roles_model' => Encore\Admin\Auth\Database\Role::class,

        // 权限表及模型
        'permissions_table' => 'admin_permissions',
        'permissions_model' => Encore\Admin\Auth\Database\Permission::class,

        // 菜单表及模型
        'menu_table' => 'admin_menu',
        'menu_model' => Encore\Admin\Auth\Database\Menu::class,

        // 多对多关联中间表
        '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',
    ],

    /*
     * Laravel-Admin 操作日志设置
     */
    'operation_log' => [
        /*
         * 只记录以下类型的请求
         */
        'allowed_methods' => ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],

        'enable' => true,

        /*
         * 不记操作日志的路由
         */
        'except' => [
           'admin/auth/logs*',
        ],
    ],

    /*
    * 路由是否检查权限
    */
    'check_route_permission' => true,

    /*
     * 菜单是否检查权限
    */
    'check_menu_roles'       => true,

    /*
    * 管理员默认头像
    */
    'default_avatar' => '/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg',

    /*
     * 地图组件提供商
     */
    'map_provider' => 'google',

    /*
     * 页面风格
     * @see https://adminlte.io/docs/2.4/layout
     */
    'skin' => 'skin-blue-light',

    /*
     * 后台布局
     */
    'layout' => ['sidebar-mini', 'sidebar-collapse'],

    /*
     * 登录页背景图
     */
    'login_background_image' => '',

    /*
     * 显示版本
     */
    'show_version' => true,

    /*
     * 显示环境
     */
    'show_environment' => true,

    /*
     * 菜单绑定权限
     */
    'menu_bind_permission' => true,

    /*
     * 默认启用面包屑
     */
    'enable_default_breadcrumb' => true,

    /*
    * 压缩资源文件
    */
    'minify_assets' => [
        // 不需要被压缩的资源
        'excepts' => [

        ],
    ],
    /*
    * 启用菜单搜索
    */
    'enable_menu_search' => true,
    /*
    * 顶部警告信息
    */
    'top_alert' => '',
    /*
    * 表格操作展示样式
    */
    'grid_action_class' => \Encore\Admin\Grid\Displayers\DropdownActions::class,
    /*
     * 扩展所在的目录.
     */
    'extension_dir' => app_path('Admin/Extensions'),

    /*
     * 扩展设置.
     */
    'extensions' => [

    ],
];

 

3. 效果展示

我们在配置文件中设定了路由前缀是 admin,因此访问:travel.local/admin

语言包没生效,这是因为使用的是 zh-CN 目录,将其改为我们 config/app.php 里设置的 zh_CN 即可:

mv resources/lang/zh-CN resources/lang/zh_CN

4. 移除演示控制器#

Laravel-Admin 在安装时默认创建了一个 ExampleController,我们并不需要这个文件,可以直接删除

rm -f app/Admin/Controllers/ExampleController.php

5. 菜单汉化

默认的菜单都是英文的,我们来汉化一下。

点击左侧菜单的 Admin -> Menu,点击 Dashboard 菜单的编辑按钮

同理,将 Admin 改为 系统管理Users 改为 管理员Roles 改为 角色Permission 改为 权限Menu 改为 菜单 ,Operation Log 改为 操作日志

静态文件

后台所需的前端静态文件在/public/vendor/laravel-admin目录下.

posted @ 2022-06-13 09:52  痞子胥  阅读(929)  评论(0)    收藏  举报