PM_Console/backend/app/Models/Setting.php

30 خطوط
788 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
class Setting extends Model
{
protected $fillable = ['key', 'value', 'group', 'type'];
protected function value(): Attribute
{
return Attribute::make(
get: function ($value) {
if ($value === null || $value === '') {
return $value;
}
$decoded = json_decode($value, true);
return json_last_error() === JSON_ERROR_NONE ? $decoded : $value;
},
set: fn ($value) => is_array($value) || is_object($value) || is_bool($value)
? json_encode($value, JSON_UNESCAPED_UNICODE)
: $value,
);
}
}