我正在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模块中运行种子器类的特定命令。
答案 0 :(得分:1)
要运行此种子,您将经历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
答案 1 :(得分:0)
在我的情况下,当模块位于子文件夹中并且想直接运行而无需运行其他播种器时
php artisan db:seed --class=WM\Common\Seeder\SmsStatusSeeder