在我的自定义Artisan命令中,我从我的数据库中获取项目列表,我想迭代它们并通过我的DownloaderController中的方法运行它们。我怎样才能做到这一点?什么是最佳实践?
DownloadCommand.php
public function handle()
{
$files = File::all();
foreach($files as $file)
{
// downloadFile method belongs to DownloadController
downloadFile($file);
}
}
DownloadController.php
public function downloadFile($file)
{
// some example logic to download file
if(wget($file))
{
$file->status = 'Downloaded';
}
else
{
$file->status = 'Failed';
}
$file->save();
}
答案 0 :(得分:0)
负责提取数据的逻辑不应包含在您的控制器中。为此创建一个存储库(或专门的服务),并将其注入您的命令。