Laravel .env变量始终返回null

18 浏览
0 Comments

Laravel .env变量始终返回null

我将该变量添加到.env文件中:

STRIPE_SECRET=a12345

我想使用routes/web.php来显示该变量:


但是看起来它总是返回null。

更新:更新了.env文件。我只移除了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

0
0 Comments

Laravel .env变量始终返回null的问题产生的原因是在.env文件中的变量值没有正确设置,导致无法正确获取变量。解决方法是按照以下步骤进行操作:

1. 在.env文件中,确保变量值使用双引号括起来,例如:STRIPE="a12345"。

2. 运行以下命令进行配置和缓存清除:

- php artisan config:clear

- php artisan cache:clear

- composer dump-autoload

3. 最后,使用以下命令获取变量值:

- dd(env('STRIPE'));

4. 如果问题仍然存在,尝试重启服务器。

总结以上解决方法,按照正确的格式设置.env文件中的变量值,并进行配置和缓存清除操作,最后使用env()函数获取变量值,这样就可以解决Laravel .env变量始终返回null的问题。

0
0 Comments

问题的原因是.env文件中没有STRIPE_SECRET变量。解决方法是确保.env文件中存在这个变量,并按照以下顺序执行清除配置缓存的命令:

php artisan config:cache
php artisan config:clear 

Laravel会缓存配置文件以提高执行速度,所以每当您在服务器上更改配置文件时,都应该清除缓存。

此外,您还可以运行以下命令来清除其他缓存:

php artisan cache:clear   //清除缓存
php artisan view:clear    //清除已编译的视图
php artisan route:clear   //清除路由缓存

您还可以为这些命令创建路由,并从代码中调用这些命令,如下所示:

Route::get('/cache-clear', function() {
    $exitCode = Artisan::call('cache:clear');
    echo "Cache Cleared: ".$exitCode;
});
Route::get('/view-clear', function() {
    $exitCode = Artisan::call('view:clear');
    echo "View Cleared: ".$exitCode;
});
Route::get('/route-cache', function() {
    $exitCode = Artisan::call('route:cache');
    echo "Route Cached: ".$exitCode;
});
Route::get('/route-clear', function() {
    $exitCode = Artisan::call('route:clear');
    echo "Route Cache Cleared: ".$exitCode;
});
Route::get('/config-cache', function() {
    $exitCode = Artisan::call('config:cache');
    echo "Config Cached: ".$exitCode;
});
Route::get('/config-clear', function() {
    $exitCode = Artisan::call('config:clear');
    echo "Config Cache Cleared: ".$exitCode;
});

通过以上方法,您可以在代码中创建路由,并调用这些命令来清除缓存。

0
0 Comments

Laravel .env变量总是返回null的原因是因为你在缓存配置。当运行php artisan config:cache命令时,你的配置会存储在缓存中,下次Laravel启动时,它不会读取.env文件,因为它检测到配置已经被存储在缓存中。环境文件应该仅用于设置配置文件,然后在访问所需值时,应该仅使用config方法。

假设你有一个文件config/stripe.php,内容如下:

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

一旦你运行了php artisan config:cache命令后,你可以通过config('stripe.secret')语法访问该值。每次更新配置文件和.env文件后,你都需要再次运行php artisan config:cache命令。

0