Laravel تبدیلی کے بعد .env فائل نہیں پڑھ رہا ہے۔

Laravel Is Not Reading



مسئلہ۔

یہ اگر ایک عام مسئلہ ہے جو نئے Laravel ڈویلپرز کے درمیان ظاہر ہوتا ہے۔

بہت سے لوگ اپنی .env فائل کو اپ ڈیٹ کرنے کی کوشش کر رہے ہیں صرف یہ دیکھنے کے لیے کہ جب وہ اپنی ایپلیکیشن کو ریفریش کرتے ہیں تو .env کنفیگ ویلیوز ظاہر نہیں ہو رہی ہیں۔







اور زیادہ دلچسپ بات یہ ہے کہ اکثر ، یہ آپ کے Laravel ورژن کو اپ گریڈ کرنے کے بعد ظاہر ہوگا۔



تو مثال کے طور پر ، آپ کو یہ اپنی .env فائل میں ہوگا:



DB_DATABASE۔=laraveldb
DB_USERNAME=laraveluser

پھر قدرتی طور پر ، config/database.php فائل کے اندر آپ کے پاس یہ ہوگا:





'mysql'=>۔ [
' ڈیٹا بیس '=>۔env('DB_DATABASE'،'ران')،
'صارف نام'=>۔env('DB_USERNAME'،'ران')،
]

فورج یہاں ڈیفالٹ ویلیوز کے لیے ہے۔ اس کا مطلب یہ ہے کہ ان اقدار کو اس صورت میں استعمال کیا جائے گا جب آپ نے اپنی خدمات فراہم نہیں کیں۔ DB_DATABASE۔ اور DB_USERNAME آپ کی .env فائل کے اندر اقدار۔ یہ معلومات تھوڑی دیر میں مددگار ثابت ہوں گی۔

اب ، آپ کیسے جانتے ہیں کہ آپ کو یہ مخصوص مسئلہ درپیش ہے اگر آپ مندرجہ ذیل استثناء سے دوچار ہیں:



PDOException: SQLSTATE۔[HY000۔] [1045۔]تک رسائی سے انکار کر دیا گیا۔ صارف 'لار' local 'لوکل ہوسٹ'
( استعمال کرتے ہوئے پاس ورڈ : نہیں )

یہ واضح طور پر ظاہر کرتا ہے کہ آپ کی Laravel ایپلی کیشن آپ کی ڈیفالٹ ویلیو کو کھینچ رہی ہے۔ config/database.php فائل اور آپ کے .env سے نہیں۔

کچھ اور کرنے سے پہلے ، آپ php کاریگر ٹنکر کا استعمال کرتے ہوئے اس مسئلے کی تصدیق کرنے کی کوشش بھی کر سکتے ہیں۔

>>>env('DB_DATABASE')
=>۔ خالی
>>>getenv('DB_DATABASE')
=>۔ جھوٹا
>>>تشکیل(' ڈیٹا بیس .connections.mysql ڈیٹا بیس ')
=>۔ران
>>>ڈی ڈی($ _ENV)
[]

آپ اکثر دیکھیں گے کہ درج ذیل کام کرنے سے بھی کوئی فرق نہیں پڑے گا۔ تاہم ، ڈویلپرز مکمل طور پر نیا Laravel انسٹال چلا کر اور صرف پرانے ایپ فولڈر کو کاپی کرکے اپنی کنفیگریشن کو جانچنے کی کوشش کرتے ہیں۔ وہ کوئی کمپوزر پیکج تنصیبات نہیں چلاتے اور نہ ہی کچھ اور کرتے ہیں۔

جب تک آپ لینکس پر نہ ہوں (میں آپ کو کچھ دیر بعد بتاؤں گا) ، آپ کو کوئی تبدیلی نظر نہیں آئے گی۔

حل۔

ہمیشہ کی طرح ، بہت ساری چیزیں ہیں جو آپ اس مسئلے کو حل کرنے کی کوشش کر سکتے ہیں لیکن ان میں سے کچھ کے کامیاب ہونے کا زیادہ امکان ہے۔

اپنے کنفیگ کیش کو صاف کریں۔

سب سے پہلے ، اگر آپ کے پاس نہیں ہے تو ، آپ کو کچھ اور کرنے سے پہلے اپنے کنفیگ کیش کو صاف کرنا ہوگا۔

چونکہ ہمارا کوڈ آج کل بہت ساری لائبریریوں کا استعمال کر رہا ہے ، ہم رن ٹائم کے دوران ان تک فوری رسائی کے لیے چیزوں کو کیش کرنے پر مجبور ہیں۔

مجھے ذاتی طور پر ونڈوز اور میک پر اس کے ساتھ مسائل تھے ، تاہم ، میں نے محسوس کیا کہ کسی وجہ سے ، لینکس (اوبنٹو) پر یہ کنفیگ فائلیں یا تو کسی طرح کے ہک سے صاف ہوچکی ہیں یا انہیں بالکل بھی کیش نہیں کیا جارہا ہے ، کیونکہ میں اس قابل تھا مندرجہ ذیل کام کیے بغیر ایپلیکیشن کو نئی .env اقدار کے ساتھ دوبارہ لوڈ کریں۔

اس بات کو یقینی بنائیں کہ آپ مندرجہ ذیل احکامات کو چلا کر اپنی تشکیل کیش کو صاف کریں:

پی ایچ پی کاریگر ترتیب:کیشے
پی ایچ پی کاریگر ترتیب:صاف

اپنی .env فائل کے اندر خالی جگہوں کو چیک کریں۔

اگلا حل آپ کی .env فائل کے اندر سفید جگہیں رکھنے کے حوالے سے ہے۔ اور یہ وہ جگہ جہاں زیادہ تر لوگ ناکام ہوجاتے ہیں اور اپنے بالوں کو چیرنا شروع کردیتے ہیں۔

اس کو یاد کرنا بہت آسان ہے لیکن ایک مثال کے طور پر جو آپ اپنی .env فائل میں رکھ سکتے ہیں وہ کچھ اس طرح ہے:

جگہ کا نام=میری لاریول ایپلی کیشن۔

یہ اکیلے کام نہیں کرے گا کیونکہ سفید جگہیں .env فائل کو خراب کردیں گی۔

آپ کو اپنی اقدار کو اس طرح کے حوالوں کے اندر لپیٹنے کی ضرورت ہے:

جگہ کا نام=میری لاریول ایپلی کیشن۔

اس بار سب کچھ ٹھیک کام کرنا چاہیے۔

ہر بار جب آپ تبدیلی کرتے ہیں تو صرف اپنے کنفیگ کیش کو صاف کرنا یقینی بنائیں۔ ہم یہ پہلے کی طرح کر سکتے ہیں:

پی ایچ پی کاریگر ترتیب:کیشے
پی ایچ پی کاریگر ترتیب:صاف