php - Laravel 在控制器构造函数中从数据库中获取应用程序常量
问题描述
使用我的应用程序,我有 5 个变量需要定期更改,因此我在数据库中为这些变量创建了一个表,以便我们可以在需要时更新它们,并在与其中一个或两个变量关联的控制器中获取变量值从控制器构造方法中的数据库中,并将其分配给另一个变量$distance
,以在其他控制器功能和数据库查询中使用它,如下所示
从数据库中获取变量:
class AccountController extends Controller
{
private $distance;
public function __construct()
{
$this->distance = AppConstants::where('id',1)->value('is_available');
}
....
并将其用作函数:
public function ListNearByRes()
{
$res = DB::table('res_profile as r')
->where('r.distance','<',$this->distance)
->select(......)->get();
return response()->json(['status_code'=>1000,'data'=>$res,'message'=>null],200);
}
代码运行良好,但我只想问这是否是最好和理想的方法?如果我的情况还有其他方法
解决方案
我看到了很多解决方案,但这是我更喜欢的:
在 config 文件夹中添加一个配置文件并将其命名为global-var.php
,然后添加您的配置:
<?php
return [
'distance' => 'value',
'speed' => 'value'
];
现在在routes
, 中controller
,views
您可以使用
Config::get('global-var.distance')
//views
{{ Config::get('global-var.distance') }}
// or just config('global-var.distance');
每当您想更新全局变量时,您都可以:
$data = [
"distance" => "value"; // your input
];
Config::write('global-var', $data);
推荐阅读
- clang - Clang CodeGen Builder CreatCall 到 GCC 内置函数
- html - 可滚动 div 内的内容,导致 IE 中出现页面滚动条
- facebook - 无需用户登录即可发布到自己的企业 Facebook 页面
- javascript - 如何在 Node.js 中包含 .js 文件(用于游戏)
- tensorflow - 在 Keras 中的可变长度序列上的 Softmax
- c# - 如何在没有特别选择的情况下在 c#winforms 中获取按键
- javascript - Node JS 异步模块初始化模式
- ios - 当我尝试以编程方式添加 UIView 时,UITableViewCell 高度不会自动调整(而是压扁我的 UIView)
- integer - 大于 e-06 的 scip 数字问题
- node.js - HTTP2 的快速类型