在Laravel中使用nwidart软件包后播种数据库的问题

问题描述 投票:0回答:1

我正在Laravel中创建一个模块化应用程序,并使用了一个名为nwidart的程序包。我还将Spatie程序包用于基于角色和权限的ACL。效果很好,我使用以下命令在我的模块内创建了一个称为API的种子类

php artisan module:make-seed PermissionTableSeeder API

这已在Modules/API/Database/Seeders directory中创建了一个种子文件。我进一步编辑了种子文件中的代码,如下所示:

<?php

namespace Modules\API\Database\Seeders;

use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;

class PermissionTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {

        $permissions = [
            'role-list',
            'role-create',
            'role-edit',
            'role-delete',
            'blog-list',
            'blog-create',
            'blog-edit',
            'blog-delete'
         ];

        foreach ($permissions as $permission) {
            Permission::create(['name' => $permission]);
        }
    }
}

问题不知道要在API模块内运行种子程序类的特定命令。

laravel laravel-5 migration laravel-5.8 laravel-seeding
1个回答
0
投票

要运行此种子,您将经历2个步骤:

1-如果您没有更改主模块播种器,请转到Modules\API\Database\Seeders\APIDatabaseSeeder并将以下行添加到运行功能:

$this->call(PermissionTableSeeder::class);

注意,在运行命令之前,您需要使用PermissionTableSeeder类。

2-运行:php artisan模块:种子API

检查文档以获取更多信息https://nwidart.com/laravel-modules/v6/advanced-tools/artisan-commands#moduleseed

© www.soinside.com 2019 - 2024. All rights reserved.