在 Laravel 中通过控制器动态执行种子命令

Executing seed command dynamically through controller in Laravel

我正在尝试使用模块化方法在 Laravel 上构建一个小型应用程序,我有一个控制器方法可以根据 module/plugin 名称为数据库播种:

我有这样的东西:

Artisan::call('db:seed --class=Nitseditor\Plugins\'.$pluginName.'\Databases\seeds\InstallSeeder');

每当我调用它时,我的控制台中都会出现此错误。

Class NitseditorPluginsConfidenceDatabasesseedsInstallSeeder does not exist

我不知道为什么要删除 \ 并连接字符串。

我怎样才能做到这一点?

你可以这样做:

$fullClassName = "Nitseditor\Plugins\${pluginName}\Databases\seeds\InstallSeeder";

Artisan::call("db:seed", ['--class' => $class]);

以我为例,子文件夹中有一些模块

然后想 运行 直接 运行 一个播种者而不 运行 其他播种者

php artisan db:seed --class=WM\Common\Seeder\SmsStatusSeeder