Accessor for JSON Fields in Laravel
Leveraging Laravel’s accessors, you can effortlessly retrieve targeted fields or attributes from JSON data, making data retrieval a breeze.
use Illuminate\Database\Eloquent\Model;
class Doctor extends Model
{
protected $table = 'doctors';
protected $fillable = [
'name',
'extra_info'
];
protected $casts = [
'extra_info' => 'array',
];
protected $appends = ['specializations'];
public function getSpecializationsAttribute()
{
return array_get($this->extra_info, 'specializations', []);
}
}
use Illuminate\Database\Eloquent\Model;
class Car extends Model
{
protected $table = 'cars';
protected $fillable = [
'brand',
'model',
'specs'
];
protected $casts = [
'specs' => 'array',
];
protected $appends = ['features'];
public function getFeaturesAttribute()
{
return array_get($this->specs, 'features', []);
}
}