2017-12-22 97 views
5

मेरे प्रोजेक्ट में समय क्षेत्र (पीटी, सीएसटी इत्यादि) का ड्रॉप-डाउन होता है, जब व्यवस्थापक ड्रॉप-डाउन से टाइमज़ोन बदलता है तो व्यवस्थापक पैनल चयनित ड्रॉप डाउन से टाइमज़ोन को प्रतिबिंबित करता है।
चयनित विकल्प के अनुसार Config/app.php "timezone" (एप्लिकेशन टाइमज़ोन) को कैसे बदलें।लार्वेल में गतिशील रूप से टाइमज़ोन बदलें

उत्तर

2

आप Laravel सहायक समारोह config का उपयोग समय क्षेत्र सेट कर सकते हैं। हालांकि, यह केवल आपको प्राप्त अनुरोध को प्रभावित करेगा।

config(['app.timezone' => $timezone]); 

अपने लक्ष्य को समय क्षेत्र एक बार हर अनुरोध पर तो डीबी में या एक फ़ाइल में बदली हुई समय क्षेत्र की बचत के बारे में क्या बदल सकते हैं और चलाने के लिए है। फिर, डीबी के लिए एक क्वेरी लिखें या ऐप/config.php में एक फ़ाइल पढ़ें और फ़ाइल में इंडेक्स टाइमज़ोन का मान बदलें।

उदाहरण (फ़ाइल उदाहरण) के लिए:

जब आप समय क्षेत्र में यह एक फ़ाइल में बचत होती है बदल दिया है। परिवर्तन प्राप्त करने के लिए कैश:

file_put_contents("path/to/file", $timezone); 

और app/config.php

$timezone= file_get_contents("path/to/file"); 
return [ 
. . . 
    'timezone' => $timezone, 
. . . 
] 
+0

जब भी कॉन्फ़िग फ़ाइल में परिवर्तन होता है में,, php कारीगर config चलाने की जरूरत है। परिवर्तन कैसे कॉन्फ़िगर किए बिना प्रतिबिंबित करते हैं: कैश कमांड? – SVM

+0

मुझे ऐसा नहीं लगता .... क्या आपने कोशिश की? लेकिन फिर भी आप exec ("php artisan cache: clear") जोड़ सकते हैं जो यादृच्छिक समय निष्पादित करता है .. या फ़ाइल को बदलने के बाद बस एक बार। आप filemtime() फ़ंक्शन का भी उपयोग कर सकते हैं। ऐसा कुछ अब() - filemtime() <5, फिर exec कमांड चलाएं –

2

यदि आप सभी भावी अनुरोधों के लिए एक नया समय क्षेत्र रखना चाहते हैं, तो आपको larapack/config-writer जैसे पैकेज का उपयोग करने के लिए समय क्षेत्र को app कॉन्फ़िगरेशन फ़ाइल में सहेजने में सक्षम होना चाहिए।

इसे संभालने का एक और तरीका डीबी में समय क्षेत्र रखना है, इसे प्रत्येक अनुरोध में लाएं और इसे config(['app.timezone' => $timezone]) गतिशील रूप से सेट करें।

2

आप इसे प्राप्त करने के लिए middleware का उपयोग कर सकते हैं, जो भी मार्ग आप लिखेंगे, वे उस मिडलवेयर के साथ आवेदन करने वाले सभी का उल्लेख करते हैं।
आप डेटाबेस से कि डेटा लाने कर सकते हैं और इसे लागू की तरह इस प्रकार है,

config('app.timezone', 'your selected timezone') 
संबंधित मुद्दे