Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel .env variable always returns null

I added this variable to .env file

STRIPE_SECRET=a12345

I would like to dump the variable using routes/web.php

<?php
dd(env('STRIPE_SECRET'));

But it looks like it always returns null.

Update : Updated .env file. I only removed DB_PASSWORD.

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:08txDXXatyYsP5WQ4ECz35Q7OyBEe8Vgb/zK5fZsHik=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
APP_LOCALE=tr
APP_LC_ALL=tr_TR.utf8

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=gunluk
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=03ac580c85842d
MAIL_PASSWORD=1d6d902d296942
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

STRIPE=a123
STRIPE_SECRET=a12345
like image 662
Erdem Avatar asked Sep 23 '17 16:09

Erdem


2 Answers

The main reason upon your issue is that you are caching your configuration. When running php artisan config:cache you're storing your configuration in your cache, and the next time Laravel will boot up it won't read the .env file because it detects that the configuration has been stored in the cache. Environment file should be used only to setup configuration files and then to access the value you're looking for you should use ONLY the config method.

Let's assume that you have the file config/stripe.php that consists of this content:

<?php

return [
    'secret' => env('STRIPE_SECRET', '')
];

Once you run php artisan config:cache access this value using ONLY the syntax config('stripe.secret') through your application code. Every time you update your config files and your .env you need to run php artisan config:cache again.

like image 139
Desh901 Avatar answered Sep 16 '22 16:09

Desh901


if you have STRIPE="a12345" this in .env file or if you any change in .env file or config file then you fallow these steps

one more thing write the variable value in comma's like STRIPE="a12345"

First run these commands

 1. php artisan config:clear
 2. php artisan cache:clear
 3. composer dump-autoload

and finally used this command to get variable

dd(env('STRIPE'));

this working for me

and also 1 stupid suggestion: restart server

I have add all possible solution

like image 43
Bilal Ahmed Avatar answered Sep 16 '22 16:09

Bilal Ahmed