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;
 | |
|     }
 | |
| }
 |