Laravel-admin 后台管理

1.安装 laravel-admin

composer require encore/laravel-admin "1.5.*"

然后运行下面的命令来发布资源:

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

在该命令会生成配置文件config/admin.php,可以在里面修改安装的地址、数据库连接、以及表名,建议都是用默认配置不修改。
然后运行下面的命令完成安装:

php artisan admin:install

报错:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

解决:修改 app/Providers/AppServiceProvider.php 文件:

use Illuminate\Support\Facades\Schema;
public function boot()
{
    //增加这一行
    Schema::defaultStringLength(191); 
}

2. 测试

启动服务后,在浏览器打开 mylaravel.com/admin/
使用用户名:admin,密码:admin 登陆

a.如果在本地显示正常,在服务器显示不了
服务器显示404错误 在nginx配置xxx.conf(自己项目的nginx配置)文件中增加

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

b.如果显示的格式不对,此网页正试图从未经验证的来源加载脚本
在config/admin中

'secure' => false  改成 'secure' => true

3. 在后台安装执行定时任务组件

composer require laravel-admin-ext/scheduling
php artisan admin:import scheduling

会在vendor目录下生成 laravel-admin-ext 目录
安装这个组件后,登陆后台可以在后台执行 3.1 中创建的命令任务。

4. 使用 laravel-admin

laravel-admin 中文文档
后台管理主要都是对数据库表里面的数据进行展示和操作用的。

1. 创建模型

对需要操作的表在 app/ 目录下建一个 model ,比如对FuliLog表建一个模型
FuliLog.php

2. 创建admin控制器

传入一个model,它会根据model对应表的字段,默认构建出所需的grid,form和show三个页面的代码
命令如下:

$ php artisan admin:make FuliLogController --model=App\\Post
// 在windows系统中
$ php artisan admin:make FuliLogController --model=App\Post

执行该命令后会在 app/Admin/Controllers 下面创建一个 FuliLogController.php 文件, 主要对类里面的几个方法修改
index():页面标题修改
grid():展示表里需要显示的字段
form():对表字段进行操作管理的方法

有时在展示页面 grid() 方法,和操作页面 form() 方法 默认的一些操作可能无法完成界面需求,这是可以使用 js 来辅助实现,如:

protected function grid()
{
    $grid = new Grid(new User);
    $script = <<actions(function($actions){
        $accountBanEnd = $actions->row->AccountBanEnd;
        if($accountBanEnd == 0){
            $html .= "111";
        }
        $actions->append($html);
    }
}

return $grid;
protected function form()
{
    //表单提交请求再次确认弹框
    $script = <<
                    
                    

你可能感兴趣的:(Laravel-admin 后台管理)