0
私のカスタムArtisanコマンドで私は自分のDBから項目のリストを取得します。私はそれらを繰り返し、私のDownloaderControllerのメソッドを通してそれらを実行したいと思います。これどうやってするの?ベストプラクティスは何ですか?データをフェッチする責任Artisanコマンドのコントローラからの実行方法?
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();
}
正しい方法は、ロジックを別のクラスに移動して、ControllerとComandの両方から呼び出すことができるようにすることです(コントローラーとコマンドはアプリとのやり取りのさまざまな方法を表示しますが、同じレベルにあります。 – naneri
downloadFileも '$ file'レコードを更新するとどうなりますか? (更新されたポストを確認してください) – Imran
次に、その$ファイルをクラスメソッドのパラメータとして渡します。 Filesaver :: saveFile($ file)と同様です。 – naneri