我正在尝试将 Artisan 注入到服务中,这样我就可以避免使用外观。查看外观类参考,我可以看到我应该注入的类是:
Illuminate\Console\Application
所以我会假设这样做:
<?php
namespace App\Service;
use Illuminate\Console\Application;
class DummyDataService
{
/**
* @var Application
*/
private $application;
public function __construct(
Application $application
) {
$this->application = $application;
}
public function insertDummyData()
{
$this->application->call('db:seed', [
'--class' => 'DummyDataSeeder'
]);
}
}
...会工作。但是,我收到以下错误:
BindingResolutionException in Container.php line 824:
Unresolvable dependency resolving [Parameter #2 [ <required> $version ]] in class Illuminate\Console\Application
如果我像这样调用外观上的方法,它就可以工作:
Artisan::call('db:seed', [
'--class' => 'DummyDataSeeder'
]);
到目前为止,我无法弄清楚问题出在哪里。有没有人遇到过类似的问题?我尽量避免使用外墙。
提前致谢。