我正在为Laravel实例的数据库编写一些播种器。我正在使用Laravel Scout TNTSearch driver。
php artisan tntsearch:import App\\MyModel
我想从播种机中调用此命令。我已经看过了实现,它很复杂,我不想重构,等待合并的pull请求,或者将实现复制并粘贴到我的文件中。
在播种机内我尝试了:
$this->call('tntsearch:import', ['model' => App\User::class]);
但是$this
指的是播种者,call
方法期待另一个播种者,而不是控制台命令。
我想从播种机内部召唤工匠指令。 这可能吗?
更新
我最终在播种机内做了这个:
exec('php artisan tntsearch:import App\\User');
这有效,但感觉很脏。没有使用exec()
还有另一种简单方法吗?
答案 0 :(得分:9)
您可以使用Artisan
facade:
\Artisan::call('tntsearch:import', ['model' => App\User::class]);