在旧的laravel 4 Code中,我们使用constants.php来定义全局变量。
在Laravel 5中使用define vars的最佳做法是什么?
我们不会将其存储在.env文件或routes.php
中答案 0 :(得分:10)
我只想提高@ Adam的答案。假设一个在线购物车。然后,您希望全局var存储currency symbol
以便在视图中显示。由于此值可以随时更改,因此您可以在App\Providers\ConfigServiceProvider
指定它,如下所示:
public function register()
{
$currency = 'whatever you want';
config([
'currency' => $currency
]);
}
$currency = config('currency')
var是整个应用程序使用的全局变量,即使请求尚未到达控制器(您可以阅读有关middleware classes的更多信息)。
如果你明确想要使用constanst(值永远不会改变),你可以考虑在配置文件direclty中设置值如下:
# create a new config file config/customs.php
# like content, you could start with:
return [
'currency' => '$'
];
最后,您使用config('customs.currency')
抓取应用中的值。
答案 1 :(得分:0)
取决于您尝试存储的变量类型。如果它们与模型相关,则应将它们存储在模型中,如果它们与环境相关,则应将它们存储在.env中。你试图存储什么样的变量?