在Laravel 4中,您可以设置基于环境的配置文件夹结构:
/config/app.php
/config/dev/app.php
/config/staging/app.php
/config/testing/app.php
您可以使用Laravel 5做到这一点吗?我了解.env概念,并用它来定义我所处的环境.但是我需要定义一个配置值,该值是任意长度的数组,而.env文件不能这样做.
我正在尝试实现的示例:
if (in_array($request->input('value'), config('app.valid_values')) {
// do something
}
这个valid_values只是一个值数组.它的长度是任意的,因此您不能像这样在.env文件中设置它们:
VALID_VALUE1=...
VALID_VALUE2=...
etc.
而且,每个环境的阵列都需要不同.
在Laravel 4中使用环境配置文件夹很容易做到这一点.但是,如何使用Laravel 5做到这一点?
解决方法:
如果需要根据值创建数组,则可以按字符串格式创建,并且在需要时可以解析它们
MY_ARRAY_VALUE=1,2,house,cat,34234
当您需要它们时
$myArrayValue = explode(',', env('MY_ARRAY_VALUE'));
或者将您的值保存在JSON中,然后使用json_decode()获取它们
$myArrayValue = json_decode(env('MY_ARRAY_VALUE'), true);
额外信息:
在Laravel 5上,您需要将所有配置文件转换为一个.env文件.
在每个环境中,您的.env文件将与该环境的值不同.
要设置环境,您需要在.env文件中更改APP_ENV的值
APP_ENV=local
您可以在该文件中创建自己的变量
Instead of a variety of confusing, nested environment configuration directories, Laravel 5 now utilizes DotEnv by Vance Lucas. This library provides a super simple way to manage your environment configuration, and makes environment detection in Laravel 5 a breeze. For more details, check out the full configuration documentation.
It is often helpful to have different configuration values based on the environment the application is running in. For example, you may wish to use a different cache driver locally than you do on your production server. It’s easy using environment based configuration.
To make this a cinch, Laravel utilizes the DotEnv PHP library by Vance Lucas. In a fresh Laravel installation, the root directory of your application will contain a .env.example file. If you install Laravel via Composer, this file will automatically be renamed to .env. Otherwise, you should rename the file manually.
标签:php,laravel
来源: https://codeday.me/bug/20191010/1887876.html