2015-02-22 5 views
7

मैंने विधि described here विधि का प्रयास किया है लेकिन यह मेरी Laravel 5 स्थापना पर काम नहीं करता है।लार्वेल 5 आर्टिसन कमांड से आउटपुट को कैसे सहेजना/रीडायरेक्ट करना है?

use Symfony\Component\Console\Output\BufferedOutput; 

Route::get('/test', function() 
{ 
    $output = new BufferedOutput; 

    Artisan::call('testCommand', array(), $output); 

    return $output->fetch(); 
}); 

मेरा आदेश;

public function fire() 
{ 
    $this->info('No output visible'); 
} 

कोई सुझाव जो मैं गलत कर सकता हूं? या यह ऐसा कुछ है जो लैरवेल 5 में बदल गया है?

उत्तर

4

मैं इस Artisan::output(), जो नवीनतम आदेश के उत्पादन में रिटर्न का उपयोग कर काम करने के लिए पाने में कामयाब रहे।

Route::get('/test', function() 
{  
    Artisan::call('testCommand', array()); 

    return Artisan::output(); 
}); 

यह आपके लिए करना चाहिए।

0

मैं एक ही समस्या मिला है, oldschool पीएचपी साथ BufferedOutput की जगह यह मेरे लिए काम किया है, शायद यह भी आप के लिए काम करता है:

Route::get('/test', function() 
{ 
    ob_start(); 
    Artisan::call('testCommand'); 
    $output = ob_get_clean(); 
    return $output; 
}); 
+1

मेरे लिए काम नहीं करता है। मैं कमांड खोल और PHPUnit का उपयोग कर रहा हूं और $ आउटपुट हमेशा खाली है। – Marc

0

आप तो कमांड लाइन से दूर काम कर रहे हैं आप पाइप कर सकते हैं tee के माध्यम से एक फ़ाइल को लिखने के लिए आदेश और stdout एक ही समय में।

php artisan <command> | tee <filename>

1

मैं इस

php artisan your:command >> output.txt

मेरे लिए ठीक काम किया था।

संबंधित मुद्दे