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

时间:2019-05-02 14:16:07

标签: php laravel artisan laravel-5.8

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

我有这样的东西:

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

每当我调用此命令时,都会在控制台中收到此错误。

  

NitseditorPluginsConfidenceDatabasesseedsInstallSeeder类不存在

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

我该如何实现?

2 个答案:

答案 0 :(得分:1)

您可以这样做:

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

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

答案 1 :(得分:0)

在我的子文件夹中有某些模块的情况下

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

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