我创建了一个命令,如下所示:
<?php
use IlluminateConsoleCommand;
use SymfonyComponentConsoleInputInputOption;
use SymfonyComponentConsoleInputInputArgument;
class SchedulesCommand extends Command {
protected $name = "mod:check";
protected $description = "Checks the Database for any upcoming schedules.";
protected $mod;
public function __construct (Model $mod){
$this->mod = $mod;
}
public function fire(){
$this->line('Checking the database');
$this->mod->f1 = 1;
$this->mod->f2 = "test";
$this->mod->f3 = 'Command';
$this->mod->save();
}
?>
我得到以下错误-不知道为什么-
{"error":{"type":"ErrorException","message":"Invalid argument supplied for foreach()","file":"/home/test/Documents/account1/PHP Scripts/project/vendor/symfony/console/Symfony/Component/Console/Application.php","line":409}}
有人能告诉我可能出了什么问题吗?
这是我的artisan.php
文件:
$mod = new Model;
$artisan->add(new SchedulesCommand($mod));
创建Laravel命令时,应始终调用父构造函数。
在构造函数中,添加parent::__construct()
作为第一行,如下所示:
public function __construct (Model $mod)
{
parent::__construct();
$this->mod = $mod;
}
请记住,调用父构造函数可以让Laravel在控制台命令上配置名称、描述和参数,让我们的工作更轻松