shushushushushu/laravel-admin

shushushushushu laravel admin

1.2.4 2022-07-07 02:45 UTC

This package is auto-updated.

Last update: 2024-09-07 07:39:40 UTC


README

laravel-admin

laravel-admin 是用于 Laravel 的管理界面构建器,它可以帮助您仅用几行代码就构建 CRUD 后端。

文档 | 中文文档 | 演示 | 演示源代码 | 扩展

SleepingOwlAdminrapyd-laravel 启发。

赞助商

laravel-admin

###声明 这是一个从 laravel-admin 克隆的副本,并对一些地方进行了修改以满足产品需求。

要求

  • PHP >= 7.0.0
  • Laravel >= 5.5.0
  • Fileinfo PHP 扩展

安装

此包需要 PHP 7+ 和 Laravel 5.5,对于旧版本,请参阅 1.4

首先安装 Laravel 5.5,并确保数据库连接设置正确。

composer require shushushushushu/laravel-admin:^1.2.0

然后运行以下命令以发布资源和配置:

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

运行命令后,您可以在 config/admin.php 文件中找到配置文件,在该文件中您可以更改安装目录、数据库连接或表名。

最后,运行以下命令完成安装。

php artisan admin:install

在浏览器中打开 https:///admin/,使用用户名 admin 和密码 admin 登录。

配置

文件 config/admin.php 包含一组配置,您可以在其中找到默认配置。

扩展

更改

1. 将 src/Form/Field.php 中的 sanitizeInput() 方法更改为

protected function sanitizeInput($input, $column)
{
    if ($this instanceof Field\MultipleSelect) {
        $value = Arr::get($input, $column);
        Arr::set($input, $column, array_filter($value, function($val){
            return $val !== '' && $val !== null && $val !== false;
        }));
    }
    return $input;
}
purpose: submit form can be access when checkbox select 0 and rule contains required

2. 重新设计组件 'Select'

①method ajax() in src\Form\Field\Select.php
change select2's delay time of ajax request from 250ms to 500ms

②change name of a hidden input and set value:
<input type="hidden" name="{{$name}}"/>
change as 
<input type="hidden" name="{{$name}}_hide" value="{{old($column, $value)}}"/>
that can get old value when select option list from ajax request,

3. 将错误提示插入到 resources/views/form.blade.php 行 12

@foreach($errors->getBags() as $bags)
    <div class="alert alert-danger">{{$bags->first()}}</div>
@endforeach

4. 为了使用 alioss 并支持带有域名的完整 URL,在 src/Form/Field/Image.php -> prepare() 中进行一些修改

if(isset(config('filesystems.disks.' . config('filesystems.default'))['remote_url'])){
    $remoteUrl = config('filesystems.disks.' . config('filesystems.default'))['remote_url'];
    $path = rtrim($remoteUrl, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $path;
}//add domain before return path if config remote_url

return $path;

5. 在登录页面添加使用 easy-sms 的短信验证码。这些更改发生在 1.2.0 标签中,并且需要进行一些配置以确保其正常工作。

① 在用户表中添加一个列:

$table->char('mobile', 11);

② 配置 redis 并确保 redis 的正常运行。

③ 在 admin.config 中添加 easysms 配置:首先将 'auth/sendsms' 添加到 "auth['excepts']",确保 'auth/sendsms' 接口不需要身份验证,然后

'login_use_sms' => true,

'easysms' => [
    'timeout' => 5.0,
    'length' => 4,
    'expire' => 300,
    'product' => '',
    'default' => [
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
        'gateways' => [
            'aliyun'
        ]
    ],
    'gateways' => [
        'errorlog' => [
            'file' => '/tmp/easy-sms.log',
        ],
        'aliyun' => [
            'access_key_id' => env('ALIYUN_ACCESS_KEY_ID', ''),
            'access_key_secret' => env('ALIYUN_SECRET_ACCESS_KEY', ''),
            'sign_name' => env('ALIYUN_SMS_SIGN_NAME', ''),
        ]
    ]
],

如果设置 login_use_sms=false,则短信将禁用。

您需要在 .env 文件中配置一些环境变量,例如 'access_key_id' 等。有关详细信息,请参阅 easysms 官方网站

6. src/Form.php

public function inputAll()
{
    return $this->inputs;
}

许可证

laravel-adminMIT 许可证 (MIT) 下授权。