【发布时间】:2018-10-29 12:36:53
【问题描述】:
我想在我的导航栏中有一个下拉菜单,我可以在其中选择一种货币,并且我的应用程序中的所有价格都转换为所选货币,我知道我应该为此使用中间件,但我不知道如何开始。我使用Fixer 和laravel-swap 作为汇率包。
我做了什么
我制作了一个中间件,命名为Currancy,它的内容是:
<?php
namespace App\Http\Middleware;
use Closure;
use Swap\Swap;
use Swap\Builder;
class Currancy
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Session::has('appcurrency') AND array_key_exists(Session::get('appcurrency'), Config::get('currencies'))) {
$currency = Session::get('appcurrency');
App::setLocale($currency);
}
else {
App::setLocale(Config::get('app.currency'));
}
return $next($request);
}
}
我还在配置文件夹中创建了一个currencies.php:
<?php
return [
'IDR' => [
'name' => 'Indunesian Rupiah',
],
'USD' => [
'name' => 'U.S Dollar',
],
'EUR' => [
'name' => 'Euro',
],
];
我也将此添加到我的config\app.php
'currency' => 'IDR',
在这种情况下,我的默认货币是 IDR,除非用户选择其他货币。
PS:对于我的中间件和配置文件,我有语言的概念 翻译,我不知道如何将它加入到
SWAP包中 为了工作! :\
问题
- 我尝试处理货币的方式是否正确?
- 下一步我还应该做什么?
谢谢。
【问题讨论】:
-
为什么不使用
Waavi/translation进行翻译,使用Torann/laravel-currency进行货币。它非常易于使用。您不必创建中间件或任何不必要的编码