在 laravel 中存储和检索常量
Posted
技术标签:
【中文标题】在 laravel 中存储和检索常量【英文标题】:Storing and retrieving constants in laravel 【发布时间】:2012-08-24 09:47:25 【问题描述】:我刚刚开始使用来自 codeigniter 的 laravel,我正在尝试找出定义一系列常量的最佳方法。 CI 在 app/config 下使用了一个常量文件夹,我对这种方法在大多数情况下都非常满意,但希望获得有关在 Laravel 中执行此操作的最佳方法的建议。
我的常量分为 3 类,如果可能的话,我想就如何最好地存储和检索每个类提供建议(请记住,我是 Laravel 的新手。
类型 1:
每次调用控制器时都需要加载的常量:
例如我想首先定义一个常量来告诉我用户是否通过 ajax 请求内容,这是我以前在 CI 常量文件中所做的:
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
类型 2: 用户可以更改的常量: 这些最好存储在数据库中还是写入配置文件是更好的选择?再次寻找有关如何存储和检索的建议
类型 3: 仅在特定控制器中需要的常量: 理想情况下,我希望能够将常量分组到数组或单独的文件中,并根据需要将它们分组提取。 例如我可以为我的上传控制器检索我的上传设置。
提前感谢任何帮助/建议 - 示例将不胜感激
【问题讨论】:
【参考方案1】:类型 1 您可以在 Bundle(或应用程序)的 start.php 文件中添加任何常量。
类型 2 和 3 我建议对这两个要求都使用 Config。
【讨论】:
【参考方案2】:我的解决方案是在 app/config 文件夹中创建一个名为“constants.php”的文件 app/config/constants.php
里面的代码是数组的方式。
“一些价值”, 'c2'=>“一些价值” ); ?>然后在每个控制器中,您可以使用 配置::get('constants.c1');
我认为这是一种简单的方法,它更具可扩展性。
【讨论】:
【参考方案3】:<?php
//file : app/config/constants.php
return [
'IS_AJAX' => isset($_SERVER['HTTP_X_REQUESTED_WITH']
];
在任何地方:
echo Config::get('constants.IS_AJAX');
【讨论】:
以上是关于在 laravel 中存储和检索常量的主要内容,如果未能解决你的问题,请参考以下文章
laravel 4.2 存储/上传个人资料图片并从数据库中检索