2013-05-24 12 views
17

मैं उत्सुक था, मैं अपने प्रवासन के लिए लार्वेल और कारीगर का उपयोग कर रहा हूं। क्या कंसोल को जानकारी आउटपुट करने का कोई तरीका है? मुझे इस पर कोई जानकारी नहीं मिल रही है। उदाहरण के लिए:लार्वेल और कारीगर में कंसोल को कैसे गूंजें?

<?php 

class Generate_Sample_Users{ 

    public function up(){ 

     //Echo to console here 
     echo "Creating sample users..."; 

     $generator = new Sample_Data(); 
     $user_count = 30; 
     $users = array(); 


     for($i=0; $i < $user_count; $i++){ 
      array_push($users, $generator->generate_user($i)); 
     } 

     DB::table('users')->insert($users); 
    } 

    public function down(){ 
     DB::table('users')->delete(); 
    } 

} 
+1

बस एक संकेत, माइग्रेशन स्कीमा बनाने के लिए हैं जहां बीज आपके डेटाबेस को बीजिंग के लिए हैं। आप ऊपर क्या कर रहे हैं मेरे लिए एक बीज की तरह दिखता है। –

+0

सुधार कार्ल के लिए धन्यवाद, मैं एक अलग माइग्रेशन का उपयोग कर स्कीमा बनाता हूं, फिर मैं केवल अपने विकास पर्यावरण के लिए नमूना डेटा पॉप्युलेट करने के लिए इस माइग्रेशन को चलाता हूं। क्या यह करने का गलत तरीका है? –

+1

यदि आप लैरावेल 4 का उपयोग कर रहे हैं, तो बीज के साथ ऐसा करना बेहतर होगा: http://four.laravel.com/docs/migrations#database-seeding – JackPoint

उत्तर

24

अगर आप Laravel 3 या Laravel 4 का उपयोग कर रहे जानते हैं नहीं, और यदि Laravel 3 में अपनी भी संभव है, लेकिन मैं the docs में यह पाया।

$this->info('Creating sample users...'); 

संपादित

आप database seeds को आप इस का उपयोग कर सकते संदेश

$this->command->info('Creating sample users...'); 
+0

यह लैरवेल 4 है, मुझे अपरिभाषित विधि त्रुटि के लिए कॉल मिलता है। क्या मुझे अपने प्रवासन में कक्षा का विस्तार करना चाहिए? –

+0

@RyanSmith ने मेरा जवाब संपादित किया;) – JackPoint

+1

धन्यवाद;) जिज्ञासा से बाहर, क्या लैरवेल 3 में ऐसा करने का कोई तरीका है? –

20

इस के लिए मुझे एक

use Symfony\Component\Console\Output\ConsoleOutput; 

class MigrateData { 

    public function up() 
    { 
     $output = new ConsoleOutput(); 

     for($i=0; $i<50000; $i++) 
     { 
      $output->writeln('Converting '.$i.' of 50000'); 
     } 
    } 
} 

मैं काम करता है प्रदर्शित करने के लिए जाते हैं तो माइग्रेशन जो एक बड़ी तालिका को एक अधिक कुशल प्रारूप में परिवर्तित कर रहा है और इसे काम करते समय कुछ प्रगति प्राप्त करने के लिए इसका उपयोग करता है।

+2

यह मेरे लिए लार्वेल 4.2 पर काम करता है; स्वीकृत उत्तर –

2

'सिम्फनी \ घटक \ कंसोल \ आउटपुट \ कंसोल आउटपुट;' Laravel 5.2

4

पर मेरे लिए काम करता बाद से चुने हुए जवाब 4.2 के बाद से काम करने के लिए नहीं लगता है, मैं तो बस इसे सरल रखें कहना:

public function up() { 
    // Migration runs // 
    echo 'Records processed' . PHP_EOL; 
} 
+0

हाँ नहीं है!बस इसे सरल रखें! किसी भी लार्वा संस्करण के साथ काम करें: डी – Davuz

1

मैं रंग डम्पर से जोड़ा चाहते (Laravel 5.3 पर परीक्षण किया)। मुझे लगता है कि गूंज का उपयोग करने से थोड़ा अच्छा लगता है। मुद्दा मैं गूंज बाहर के साथ किया है कि यह याद किया जा करने के लिए बहुत आसान है, डम्पर यह कौन सा आंख पकड़ता हरी का एक सा कहते हैं:

public function up() { 
    // Migration runs // 
    (new Illuminate\Support\Debug\Dumper)->dump("A bit more colorful text"); 
} 
+0

यह वास्तव में सवाल का जवाब नहीं है, है ना? –

+0

यह सवाल का उत्तर क्यों नहीं है? यह माइग्रेशन के दौरान कंसोल पर इच्छित टेक्स्ट को आउटपुट करता है। ऊपर दिए गए एक उत्तर में केवल अंतर यह है कि यह एक अलग रंग (हरा) में है। – gsaqui

0

Laravel5 में डेटाबेस बोने के लिए, आप उपयोग कर सकते हैं

$this->command->getOutput()->writeln("<info>Your message here</info>"); 
कमांड लाइन पर आउटपुट प्रिंट करने के लिए

<info> हरे रंग के रंग में संदेश दिखाता है जहां <error> लाल रंग में दिखाया गया है जिसका उपयोग त्रुटि संदेशों के लिए किया जा सकता है।

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