kyo*_*kyo 0 php laravel laravel-5
我有一个PHP脚本位于我的laravel项目的根目录.我想在我的.env中访问我的设置
$dbname = env('DB_DATABASE');
$user = env('DB_USERNAME');
$host = env('DB_HOST');
$pass = env('DB_PASSWORD');
Run Code Online (Sandbox Code Playgroud)
PHP Fatal error: Call to undefined function env()
Run Code Online (Sandbox Code Playgroud)
解决方法是什么?我应该包含任何可以访问的内容env()吗?
如果您只想.env在单独的PHP脚本中加载配置,可以这样做:
require_once "vendor/autoload.php";
Dotenv::load(__DIR__);
Run Code Online (Sandbox Code Playgroud)
这会将您的.env配置加载到$_ENV数组中.
所以现在您可以像这样访问您的变量:
$dbname = $_ENV['DB_DATABASE'];
$user = $_ENV['DB_USERNAME'];
$host = $_ENV['DB_HOST'];
$pass = $_ENV['DB_PASSWORD'];
Run Code Online (Sandbox Code Playgroud)
如果你真的想要env()帮助函数,那就去获取那个文件:
require_once "vendor/laravel/framework/src/Illuminate/Foundation/helpers.php";
Run Code Online (Sandbox Code Playgroud)
现在你也可以访问了 env('DB_DATABASE');
注意:这根本不会给你一个自举的Laravel环境.这是获取.env配置变量的简单方法,但就是这样.
小智 5
Laravel 使用vlucas/phpdotenv来读取.env文件。该env()功能是 Laravel 助手/快捷方式。要使用 env 命令,您必须需要供应商文件并创建应用程序/内核 laravel 对象
<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
\Dotenv::load($app->environmentPath(), $app->environmentFile());
var_dump(env('DB_DATABASE'));
Run Code Online (Sandbox Code Playgroud)