19 lines
644 B
PHP
19 lines
644 B
PHP
<?php
|
|
namespace Modules\Sites\Models;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
final class SiteSetting extends Model
|
|
{
|
|
protected $fillable = ['site_id','group','key','value','type'];
|
|
public function site(): BelongsTo { return $this->belongsTo(Site::class); }
|
|
public function typedValue(): mixed
|
|
{
|
|
return match ($this->type) {
|
|
'boolean' => filter_var($this->value, FILTER_VALIDATE_BOOLEAN),
|
|
'integer' => (int) $this->value,
|
|
'json' => json_decode((string) $this->value, true),
|
|
default => $this->value,
|
|
};
|
|
}
|
|
}
|