kolyayurev/voyager

为The Control Group开发的一个Laravel管理包,由kolyayurev分叉

1.22.11 2023-05-23 13:08 UTC

README

Voyager - 缺失的Laravel管理界面

The Control Group用❤️制作

Voyager Screenshot

网站 & 文档: https://voyager.devdojo.com/

本地文档

视频教程在此:https://voyager.devdojo.com/academy/

Laravel管理 & BREAD系统(浏览、阅读、编辑、添加、删除),支持Laravel 8及更高版本!

安装步骤

1. 需求包

在创建新的Laravel应用程序后,您可以使用以下命令包含Voyager包

composer require kolyayurev/voyager

2. 添加数据库凭据 & APP_URL

接下来,请确保创建一个新的数据库并将数据库凭据添加到您的.env文件中

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

您还需要更新.env文件中的APP_URL变量中的网站URL

APP_URL=https://:8000

3. 运行安装程序

最后,我们可以安装voyager。您可以选择带或不带虚拟数据。虚拟数据将包括1个管理员账户(如果没有其他用户),1个演示页面,4个演示帖子,2个类别和7个设置。

要无虚拟数据安装Voyager,请运行

php artisan voyager:install

如果您希望带虚拟数据安装,请运行

php artisan voyager:install --with-dummy

然后我们就可以开始了!

使用php artisan serve启动本地开发服务器,然后访问https://:8000/admin

创建管理员用户

如果您进行了虚拟数据操作,应该已经为您创建了具有以下登录凭据的用户

邮箱: admin@admin.com
密码: password

注意:请注意,只有在数据库中没有当前用户时,才会创建虚拟用户。

如果您没有创建虚拟用户,您可能希望将管理员权限分配给现有用户。这可以通过运行以下命令轻松完成

php artisan voyager:admin your@email.com

如果您没有安装虚拟数据并且希望创建新的管理员用户,可以传递--create标志,如下所示

php artisan voyager:admin your@email.com --create

然后您将需要输入用户名和密码。

前端控制面板

admin-controls-expanded cookie添加到EncryptCookies中间件

自定义字段

模型必须有函数


public function adminFields():array{
    
     return [
      'meta_1' => [
          "name" => "meta_1",
          "type" => "varchar",
          "null" => "YES",
          "field" => "timestamp",
          "key" => null,
          // OTHERS
          "default" => null,
          "notnull" => false,
          "length" => 0,
          "precision" => 10,
          "scale" => 0,
          "fixed" => false,
          "unsigned" => false,
          "autoincrement" => false,
          "columnDefinition" => null,
          "comment" => null,
          "oldName" => "timestamp",
          "extra" => "",
          "composite" => false,
          "indexes" => [],
      ],
     ];
    }

以及设置器和获取器

    public function setOptionsAttribute($value)
    {
        $this->attributes['options'] = json_encode($value);
    }

    public function getOptionsAttribute($value)
    {
        return json_decode(!empty($value) ? $value : '{}');
    }

    public function setMeta1Attribute($value)
    {
        $this->attributes['options'] = collect($this->options)->merge(['meta_1' => $value]);
    }
    public function getMeta1Attribute()
    {
        return $this->options->meta_1 ?? null;
    }

自定义BREAD

您必须输入唯一的slug并指定BREAD的模型。

示例slug: feedback-client,模型: App\Models\FeedbackClient

但首先您必须创建一个模型

模型必须具有以下代码


public static function boot(){
    parent::boot();
    static::creating(function ($model) {
        $model->type = 'client';
    });
    static::addGlobalScope('client', function($builder){
        $builder->where('type', 'client');
    });
}

导入seeder

php artisan db:seed --class=VoyagerBreadFeedbacksSeeder

接下来,您需要转到导入的bread编辑页面并保存。Voyager将生成权限,然后您需要给角色权限访问此BREAD。