Laravel Eloquent Casts Kullanımı ( Accessor ve Mutator Kullanımı Eklenecektir)

#1
Merhaba arkadaşlar, laravel Eloquent modeldeki casts kullanımını göstereceğim. Örneğin veritabanımızda json tuttuğumuz bir alan var ve biz bu alanı çekerken array olarak çekmek istiyoruz.

Bunun için model dosyamızın global scopunda protected $casts = ['colon_name' => 'array'] şeklinde bir tanımlama yapmamız gerekmektedir.

Örnek:

PHP:
<?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',
    ];
}
// Kaynak: https://laravel.com/docs/5.5/eloquent-mutators#array-and-json-casting

Kullanım:

PHP:
...

$results = User::where('name', '=', 'abdullah')->get();

foreach($results as $user){

    $options = $user->options;

    // Options alanımızda dictionary array tuttuğumuzu varsayalım
    // Örnek : ['show_posts' => 'yes', 'signature' => 'user imzası', 'profile_name' => 'benabdullah'];
    foreach($options as $key => $option){
        echo $key . " : " . $option . "<br/>";
    }

}




Veya Tablomuzda is_admin diye bir alanımız var bu alanda integer tutuyoruz, 0 = Admin değil, 1 = Admin yetkisi olduğunu ifade etsin,
Bunun için aşağıdaki gibi bir kullanım işimizi görecektir.

PHP:
<?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 = [
        'is_admin' => 'boolean',
    ];
}
Kullanım:
PHP:
...

$user = User::find(1);

if($user->is_admin){
    echo "Admin Yetkilerine Sahip";
}else{
    echo "Admin Yetkisine Sahip Değil";
}
// Kaynak : https://laravel.com/docs/5.5/eloquent-mutators#attribute-casting



İlerde Accessors ve Mutatorsları anlatacağım. ( örnek link: https://laravel.com/docs/5.5/eloquent-mutators#accessors-and-mutators )

(Not: eklemeler devam edecektir.)
 
Beğeniler: SEO