在 laravel 8 中将数组定义为 .env 变量
Defining an array as an .env variable in laravel 8
我有一个从中提取数据的数组。
BLOCK_IP_LIST = [127.0.0.1,127.0.0.2,127.0.0.3]
我不知道该怎么做。
我使用 Config>app.php
在 BlockIpMiddleware 中使用 .env BLOCK_IP_LIST
Config.app.php 代码如
'block_ip' => env('BLOCK_IP_LIST'),
我的 BlockIpMiddleware 喜欢的代码
class BlockIpMiddleware
{
public function handle(Request $request, Closure $next)
{
$blockIps = config('app.block_ip');
if (in_array($request->ip(), $blockIps)) {
return response()->json(['message' => "You don't have permission to access this website."]);
}
return $next($request);
}
}
你的BlockIpMiddleware
没问题
但 .env
应该是这样的
BLOCK_IP_LIST=127.0.0.1,127.0.0.2,127.0.0.3
里面app.php
'block_ip' => explode(',', env('BLOCK_IP_LIST')),
explode 找到 ,
并将字符串转换为数组。
我的看法
你应该用数据库来做并永远缓存它因为 you/client 可以 add/delete 你想要的 IPs 和任何时候。
将数组存储在 .env
文件中是不好的,因为它只用于保存小的文本值,存储字符串数组很可能意味着这个列表会随着时间的推移而增长。
但要回答你的问题,有一个 hack 可以完成它。
.ENV 文件
BLOCK_IP_LIST = "127.0.0.1,127.0.0.2,127.0.0.3"
现在为您的 Config > app.php
文件:
'block_ip' => explode(',', env('BLOCK_IP_LIST')),
这应该会让你起床 运行,记得清除你的配置缓存。
您可以将数据另存为 json 在您的 .env 文件中
BLOCK_IP_LIST={"127.0.0.1","192.168.1.2"}
并且在您的控制器中,您可以使用
访问您的数据
$black_lists = json_decode(env('BLOCK_IP_LIST'));
我有一个从中提取数据的数组。
BLOCK_IP_LIST = [127.0.0.1,127.0.0.2,127.0.0.3]
我不知道该怎么做。
我使用 Config>app.php
在 BlockIpMiddleware 中使用 .env BLOCK_IP_LISTConfig.app.php 代码如
'block_ip' => env('BLOCK_IP_LIST'),
我的 BlockIpMiddleware 喜欢的代码
class BlockIpMiddleware
{
public function handle(Request $request, Closure $next)
{
$blockIps = config('app.block_ip');
if (in_array($request->ip(), $blockIps)) {
return response()->json(['message' => "You don't have permission to access this website."]);
}
return $next($request);
}
}
你的BlockIpMiddleware
没问题
但 .env
应该是这样的
BLOCK_IP_LIST=127.0.0.1,127.0.0.2,127.0.0.3
里面app.php
'block_ip' => explode(',', env('BLOCK_IP_LIST')),
explode 找到 ,
并将字符串转换为数组。
我的看法
你应该用数据库来做并永远缓存它因为 you/client 可以 add/delete 你想要的 IPs 和任何时候。
将数组存储在 .env
文件中是不好的,因为它只用于保存小的文本值,存储字符串数组很可能意味着这个列表会随着时间的推移而增长。
但要回答你的问题,有一个 hack 可以完成它。
.ENV 文件
BLOCK_IP_LIST = "127.0.0.1,127.0.0.2,127.0.0.3"
现在为您的 Config > app.php
文件:
'block_ip' => explode(',', env('BLOCK_IP_LIST')),
这应该会让你起床 运行,记得清除你的配置缓存。
您可以将数据另存为 json 在您的 .env 文件中
BLOCK_IP_LIST={"127.0.0.1","192.168.1.2"}
并且在您的控制器中,您可以使用
访问您的数据$black_lists = json_decode(env('BLOCK_IP_LIST'));