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