В Laravel можно организовать работу с валютой, используя стандартную библиотеку Carbon и модуль Laravel Money.
Для начала установим библиотеку Carbon через Composer, выполнив следующую команду в командной строке:
composer require nesbot/carbon
После установки библиотеки Carbon нам необходимо создать миграцию для создания таблицы в базе данных, в которой будут храниться валюты. Для этого выполним команду:
php artisan make:migration create_currencies_table --create=currencies
После создания миграции откроется файл миграции в директории database/migrations/. Внутри метода up() можно определить поля таблицы:
public function up() { Schema::create('currencies', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('code')->unique(); $table->string('name'); $table->timestamps(); }); }
После определения полей таблицы, выполним миграцию:
php artisan migrate
Далее создадим модель Currency и добавим в неё соответствующие отношения:
namespace App; use IlluminateDatabaseEloquentModel; class Currency extends Model { protected $fillable = [ 'code', 'name', ]; }
Теперь нам необходимо создать контроллер CurrencyController, в котором будут определены методы для работы с валютами:
namespace AppHttpControllers; use AppCurrency; class CurrencyController extends Controller { public function index() { $currencies = Currency::all(); return view('currencies.index', compact('currencies')); } }
Далее необходимо создать представление для отображения списка валют - resources/views/currencies/index.blade.php:
@extends('layouts.app') @section('content') <h1>Currencies</h1> <ul> @foreach($currencies as $currency) <li>{{$currency->name}} ({{$currency->code}})</li> @endforeach </ul> @endsection
В файле routes/web.php добавим маршрут для обработки запроса списка валют:
Route::get('/currencies', 'CurrencyController@index');
Теперь при обращении к URL /currencies будет отображаться список валют.
Для работы с деньгами и валютами в Laravel можно использовать модуль Laravel Money. Установим его через Composer:
composer require moneyphp/money
Затем создадим новый класс Money в директории app/Helpers:
namespace AppHelpers; use MoneyMoney as BaseMoney; use MoneyCurrency as BaseCurrency; class Money { public static function fromAmountAndCurrency($amount, $currencyCode) { $currency = new BaseCurrency($currencyCode); return new BaseMoney($amount, $currency); } }
Теперь мы можем использовать класс Money для работы с деньгами и валютами в Laravel:
use AppHelpersMoney; $money = Money::fromAmountAndCurrency(100, 'USD');
Вывод значения денежного объекта:
echo $money->getAmount();
Добавление и вычитание денег:
$money1 = Money::fromAmountAndCurrency(10, 'USD'); $money2 = Money::fromAmountAndCurrency(5, 'USD'); $result = $money1->add($money2); // сложение денег $result = $money1->subtract($money2); // вычитание денег
Таким образом, в Laravel можно организовать работу с валютой с помощью стандартной библиотеки Carbon и модуля Laravel Money.