In Laravel 4, you could set an environment based config folder structure:

/config/app.php
/config/dev/app.php
/config/staging/app.php
/config/testing/app.php

Can you do this with Laravel 5? I understand the .env concept and I'm using that to define which environment I'm in. But I need to define a config value that is an array of arbitrary length, and you can't do that with .env files.

我正在努力实现的一个例子:

if (in_array($request->input('value'), config('app.valid_values')) {
  // do something
}

valid_values只是一个值的array.它的长度是任意的,所以您不能只在.env文件中设置它们,如下所示:

VALID_VALUE1=...
VALID_VALUE2=...
etc.

而且每个环境的数组都需要不同.

在Laravel 4中,使用环境配置文件夹很容易做到这一点.但是你怎么用拉威尔5号做到这一点呢?

推荐答案

If you need to create an array on values, you can create on string format and when you need you can parse them

MY_ARRAY_VALUE=1,2,house,cat,34234

当你需要它们的时候

$myArrayValue  = explode(',', env('MY_ARRAY_VALUE'));

Or save your values in JSON and get them with json_decode()

$myArrayValue  = json_decode(env('MY_ARRAY_VALUE'), true);

Extra info:

在Laravel 5上,您需要将所有配置文件翻译成一个文件.环境文件.

在每个环境中,您的.env文件将与该环境的值不同.

要设置环境,需要更改.env文件中的值APP_ENV

APP_ENV=local

您可以在该文件中创建自己的变量

https://laravel.com/docs/5.2/configuration#environment-configuration

This is an extract of the upgrade guide to Laravel 5.0 https://laravel.com/docs/5.2/releases#laravel-5.0

Laravel 5现在使用Vance Lucas的DotEnv,而不是各种令人困惑的嵌套环境配置目录.这个库提供了一种非常简单的方式来管理您的环境配置,并且使Laravel5中的环境检测变得轻而易举.有关更多详细信息,请查看完整的配置文档.

You can find a default .env file here: https://github.com/laravel/laravel/blob/master/.env.example

根据应用程序运行的环境具有不同的配置值通常很有帮助.例如,您可能希望在本地使用与在生产服务器上不同的缓存驱动程序.基于环境的配置使用起来很容易.

为了方便起见,Laravel使用了Vance Lucas的DotEnv PHP库.在全新的Laravel安装中,应用程序的根目录将包含一个.env.example文件.如果通过Composer安装Laravel,此文件将自动重命名为.env.否则,您应该手动重命名该文件.

Laravel相关问答推荐

Laravel:通过数据透视表数据限制多对多Eager 加载

Laravel 通过 API 嵌套 url 发布

使用 fetch api 时 Laravel 控制器不存在错误

导出所有客户端不起作用,文件保存时没有名称和扩展名

使用正则表达式 laravel 忘记缓存

不能在 laravel 中使用控制器名称,必须使用命名空间

Laravel 5 - 更改模型文件位置

如何使用 Laravel Passport 在 API 中正确实现 OAuth?

Laravel API 版本控制文件夹 struct

Laravel,没有shell 访问的转储自动加载

Laravel 5 如何全局设置 Cache-Control HTTP 标头?

使用 Laravel Socialite 登录 Facebook

在 Laravel 4 迁移中创建 MYSQL 过程

在 Laravel 中将 Public 添加到assets资源路径

如何在 Laravel Eloquent 中 Select 某些字段?

如何仅在Blade模板存在时才包含它?

在 Laravel 4 中使用 HTML 占位符

Laravel 4 - 一个表单中有两个提交按钮,并且两个提交都由不同的操作处理

如何在 laravel eloquent 中保存布尔值

搜索结果分页 laravel 5.3