2017-06-28 9 views
13

विवरण

मेरी Laravel आवेदन में, मैंकॉल कारीगर कमांड काम नहीं कर रहा

php artisan languages:export 

मैं सफलतापूर्वक निर्यात करने के लिए मेरी languages मेज पर आधार एक csv फ़ाइल मिल चलाते हैं।

लेकिन लक्ष्य Laravel से इस Artisan::call लाभ उठाने के लिए है, लेकिन जब मैं अपने कोड में ऐसा किया

$export = Artisan::call('languages:export'); 

परिणाम

मैं $export चर के अपने परिणाम के रूप में 0 हो रही है - पाठ्यक्रम का कोई फ़ाइल निर्यात नहीं किया गया।


अद्यतन

अब मैं के माध्यम से shell_exec() and exec()

$cmd = 'php '.base_path().'/artisan languages:export'; 
$export = shell_exec($cmd); 

मैं या तो एक पर उत्पन्न कुछ भी नहीं देख इसे कहते हैं की कोशिश करो। निर्यात

मैं अपने csv फ़ाइल उत्पन्न देखा:

कमांड लाइन इंटरफेस से, मैं

php/अनुप्रयोग/MAMP/htdocs/कोड/कारीगर भाषाओं चलाते हैं।


कैसे एक के बारे में जाने के लिए और कोड के माध्यम से कारीगर आदेशों कहेंगे?

+1

एपीआई दस्तावेज़ों के अनुसार, 'आर्टिसन :: कॉल' का परिणाम एक int है।मुझे संदेह है कि यह एक निकास कोड है, और वह शून्य (एक बैश स्क्रिप्ट के साथ) सफल समापन को इंगित करता है। – ceejayoz

+0

@ceejayoz: आपके विस्तार के लिए धन्यवाद और मेरे विचारों को सही करने के लिए धन्यवाद। – ihue

+0

मैं अभी भी बहुत उत्सुक हूं कि यह केवल तभी काम करता है जब मैं कमांड लाइन के माध्यम से कारीगर कमांड चलाता हूं, लेकिन कोड के अंदर नहीं। – ihue

उत्तर

4

आप पैरामीटर के रूप में php artisan languages:export के साथ exec() फ़ंक्शन भी आजमा सकते हैं। आपको उस मामले में कमांड के सामने सही पथ शामिल करने की आवश्यकता हो सकती है।

मुझे कॉल के बजाय Artisan::command फ़ंक्शन भी मिला है, शायद यह काम करता है?

+0

मैं कोशिश कर सकता हूं लेकिन वास्तविक लक्ष्य इसे लारवेल 'आर्टिसन :: कॉल' के साथ काम करना है ... – ihue

+0

मेरा अपडेट देखें , मैंने कोशिश की, और ऐसा नहीं लगता है। – ihue

5

, के बाद $export = Artisan::call('languages:export');

+0

ठीक है। मैं कोशिश कर सकता हूँ – ihue

8

आपका कंसोल आदेश वापस जाने के लिए सीएसवी कि जिस तरह से फाइल नहीं जा रहा है dd(Artisan::output()); फोन करके उत्पादन की जांच करने की कोशिश करो, क्योंकि है कि कैसे नहीं सांत्वना काम आदेश है। तथ्य यह है कि आपको 0 मिल रहा है वास्तव में एक अच्छी बात कंसोल भूमि है (इसका मतलब है कि यह त्रुटियों को फेंकने के बिना पूरा हो गया है)।

आपकी कॉल सही है, यह आपकी उम्मीद है कि गलत है। हालांकि आप $export का उपभोग कर रहे हैं, इसके लिए आपको अपना दृष्टिकोण बदलना होगा। यदि आप वास्तव में नव निर्मित सीएसवी तक पहुंच बनाना चाहते हैं, तो phpleague/csv पैकेज और/या fopen कमांड में निर्मित देखें। यदि आप सिर्फ यह जानना चाहते हैं कि यह सफलतापूर्वक पूरा हो गया है, तो सफलता के रूप में बस 0 लें।

+0

मेरे विचार, और उम्मीद को सही करने के लिए धन्यवाद। लेकिन मुझे अभी भी 1 संदेह है। मुझे phpleague/csv में देखने की आवश्यकता क्यों है? मेरे कोड ने पहले ही ऐसा किया है। मुझे पहले से ही पता है कि यह कैसे करें। यह काम करता है जब मैं यह ** php artisan भाषाओं को चलाता हूं: मेरे सीएलआई पर निर्यात **, यह कोड से चलाने पर ही काम नहीं करता है। फ़ाइल निर्यात करने के तरीके के साथ इसका कुछ भी नहीं है। – ihue

+0

मैं केवल इसका उल्लेख करता हूं क्योंकि यह CSV फ़ाइलों को पढ़ने और लिखने का एक अच्छा टूल है। – Shauna

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