37 lines
		
	
	
		
			743 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			743 B
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Setting\Data;
 | 
						|
 | 
						|
use Livewire\Mechanisms\HandleComponents\Synthesizers\Synth;
 | 
						|
use Spatie\LaravelSettings\Settings;
 | 
						|
 | 
						|
class SettingSynthesizer extends Synth
 | 
						|
{
 | 
						|
    public static $key = 'setting-class';
 | 
						|
 | 
						|
    public static function match($target)
 | 
						|
    {
 | 
						|
        return $target instanceof Settings;
 | 
						|
    }
 | 
						|
 | 
						|
    public function dehydrate($target)
 | 
						|
    {
 | 
						|
        return [$target->toArray(), ['setting_class' => get_class($target)]];
 | 
						|
    }
 | 
						|
 | 
						|
    public function hydrate($value, $meta)
 | 
						|
    {
 | 
						|
        return app($meta['setting_class'])->fill($value);
 | 
						|
    }
 | 
						|
 | 
						|
    public function get(&$target, $key)
 | 
						|
    {
 | 
						|
        return $target->{$key};
 | 
						|
    }
 | 
						|
 | 
						|
    public function set(&$target, $key, $value)
 | 
						|
    {
 | 
						|
        $target->{$key} = $value;
 | 
						|
    }
 | 
						|
}
 |