2016-04-09 36 views
0

Özel Artisan komutumda, DB'mden bir öğe listesi alıyorum, bunların üzerinden yineleme yapmak ve bunları DownloaderController'ımdan bir yöntemle çalıştırmak istiyorum. Bunu nasıl yapabilirim? ve en iyi uygulama hangisidir?Artisan Komutanlığı'nda kontrolörden koşu yöntemi?

DownloadCommand.php

public function handle() 
    { 
     $files = File::all(); 

     foreach($files as $file) 
     { 
      // downloadFile method belongs to DownloadController 
      downloadFile($file); 
     } 
    } 

DownloadController.php veriler alınırken sorumlu

public function downloadFile($file) 
{ 
    // some example logic to download file 
    if(wget($file)) 
    { 
     $file->status = 'Downloaded'; 
    } 
    else 
    { 
     $file->status = 'Failed'; 
    } 

    $file->save(); 
} 
+0

Doğru bir şekilde başka bir sınıfa hareket ederdi, böylece hem Controller hem de Comand'dan (kontrolör ve komut, uygulama ile etkileşimde bulunmanın farklı yollarını görüntüleyebilir, ancak aynı seviyede olur) Bir diğerinden birini aramak yanlış) – naneri

+0

Eğer downloadFile '$ file' kaydını da güncellerse? (güncelleştirilmiş iletiyi denetle) – Imran

+0

sonra bu $ dosyayı sınıf yöntemine bir parametre olarak geçirirsiniz. Like Filesaver :: saveFile ($ dosya). – naneri

cevap

0

Mantık Kumandanızda dahil edilmemelidir. Bunun için bir depo (veya özel bir servis) oluşturun ve komutunuza enjekte edin.

İlgili konular