| Server IP : 14.225.204.176 / Your IP : 216.73.216.6 Web Server : nginx/1.24.0 System : Linux nodejs-ybgk 6.8.0-40-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 10:34:03 UTC 2024 x86_64 User : root ( 0) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/php/home-services/app/Casts/ |
Upload File : |
<?php
/*
* File name: CurrencyCast.php
* Last modified: 2021.08.10 at 18:03:34
* Author: SmarterVision - https://codecanyon.net/user/smartervision
* Copyright (c) 2021
*/
namespace App\Casts;
use App\Models\Currency as CurrencyModel;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use InvalidArgumentException;
/**
* Class CurrencyCast
* @package App\Casts
*/
class CurrencyCast implements CastsAttributes
{
/**
* @inheritDoc
*/
public function get($model, string $key, $value, array $attributes): CurrencyModel
{
if (!empty($value)) {
$decodedValue = json_decode($value, true);
$currency = new CurrencyModel($decodedValue);
array_push($currency->fillable, 'id');
$currency->id = $decodedValue['id'];
return $currency;
}
return new CurrencyModel();
}
/**
* @inheritDoc
*/
public function set($model, string $key, $value, array $attributes): array
{
if (!$value instanceof CurrencyModel) {
throw new InvalidArgumentException('The given value is not an Currency instance.');
}
return ['currency' => json_encode([
'id' => $value['id'],
'name' => $value['name'],
'symbol' => $value['symbol'],
'code' => $value['code'],
'decimal_digits' => $value['decimal_digits'],
'rounding' => $value['rounding'],
])];
}
}