Laravel’de veritabanına JSON kaydetme ve array olarak erişmenin kolay yolu

Zaman zaman veritabanına Json kaydetmemiz gerekebilir. Bu gibi durumlarda veritabanına kaydetmeden önce verimizi json_encode ile json’a çevirip; erişirken de json_decode ile tekrar arraye çevirmemiz gerekiyor. Fakat Laravel’de bunun için kısa bir yöntem var.

Dökümanda “Array & Json Casting” (https://laravel.com/docs/5.5/eloquent-mutators#array-and-json-casting) bölümünde de belirtildiği gibi, Model dosyanıza yoksa protected $casts değişkeni ekleyerek, veri alanınızın json olduğunu belirtmeniz yeterli.


<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'options' => 'array', ]; }

Kullanımı ise oldukça pratik ve json_encode json_decode methodlarına ihtiyaç duyulmuyor.

 


$user->options = [‘a’ => ‘b’]; $user->save();   echo $user->options[‘a’]; //b

Yukarıda gördüğünüz gibi, veriyi kaydederken array olarak kaydediyorsunuz. Erişirken de array olarak erişiyorsunuz. Aradaki işlemleri Eloquent sizin için tamamlıyor.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

%d blogcu bunu beğendi: