Veritabanı Izgara Kütüphanesi


    × Bunları biliyor muydunuz?
"Ajax işleminde 'url' parametresi doğru yol bilgisi için URL::site('controller/method') biçiminde ifade edilmelidir. "


DBGrid kütüphanesi veritabanında yer alan tabloların manipüle edilmesine yönelik oluşturulmuş yapıdır. Bu kütüphane ile tablo üzerinde listeleme, veri ekleme, güncelleme, silme, arama gibi işlemlerin yapılabilmesini sağlar.

 

 

# Kurulum


ZN SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-database

 

 

# Yapılandırma


DBGrid ile ilgili tasarımsal ayarları yapabilmek için aşağıdaki dosyada yer alan dbgrid dizisi kullanılır.

Dosya: Config/ViewObjects.php
Array $buttonNames Buton isimlendirmesi ile ilgili ön tanımlı ayarlar tutulur.
Array $placeHolder Yazı kutuları üzerinde görünen metinlerle ilgili ön tanımlı ayarlar tutulur.
Array $styleElement Elementlere stil vermek için kullanılır.
Array $attributes Izgara üzerindeki nesnelere özellik değer çiftleri eklemek için kullanılır.
Array $pagination Izgaranın sayfalama barına ilişkin ön tanımlı ayarlar tutulur.

 

 

# Yöntemler


String create(String $table = NULL)
This limit(Int $limit)
This columns(String ...$select)
This processColumn(String $column)
This joins(Array ...$joins)
This orderBy(Mixed $orderBy, String $type = NULL)
This groupBy(Scalar ...$args)
This where(Mixed $column, String $value = NULL, String $logical = NULL)
This whereGroup(Array ...$args)
This table(String $table)
This exclude(Strings ...$columns)
This hide(Strings ...$objects)
This inputs(Array $inputs)
This outputs(Array $outputs)
This add(String $objects)

 

 

# Create (ZN >= 4.0.1)


Veri tablosunu oluşturmak için kullanılır.

Parametreler

String $table = NULL Veritabanı tablo adı.
Return String

Kullanımlar

echo DBGrid::create('users');

Yukarıdaki kodun çalıştırıldığında oluşturulan tablo.

 

 

# Limit (ZN >= 4.0.1)


Kayıtların kaçar kaçar listeleneceğini ayarlamak için kullanılır.

Parametreler

Int $limit Bir sayfada en fazla kaç kayıt olacağı.
Return This

Kullanımlar

echo DBGrid::limit(1)->create('users');

 

 

# Columns (ZN >= 4.0.1)


Hangi kolonların tabloda yer alacağını belirlemek için kullanılır. DB::select() yöntemi ile aynı kullanımına sahiptir.

Parametreler

String ...$columns Görüntülenecek kolonlar.
Return This

Kullanımlar

echo DBGrid::limit(1)
           ->columns('id as ID', 'name as Name')
           ->create('test');

 

 

# ProcessColumn (ZN >= 4.0.1)


Bu yöntem daha çok birleştirilmiş tablolar kullanılacaksa devreye sokulur. Update, delete gibi işlemler için ön tanımlı olarak id kolonu kullanılır. Eğer farklı bir kolon kullanılacaksa bu yöntemden yararlanılır.

Parametreler

String $processColumn İşlemlerin hangi kolon üzerinden yapılacağı.
Return This

Kullanımlar

echo DBGrid::processColumn('name')
           ->create('test');

 

 

# Joins (ZN >= 4.0.1)


Seçili tablo farklı tablolar arasında birleştirme yapılacaksa kullanılır.  Birleştirilmiş tablolar için update ve delete işlemi tavsiye edilmemektedir. Doğru olmayan birleştirmelerde istenmeyen sonuçlara neden olabilir.

Parametreler

Array ...$columns Birleştirilecek tablolar. Sıralı dizi parametresi kabul eder. Birden fazla join için parametreler çoğaltılabilir.
Return This

Kullanımlar

echo DBGrid::columns('test.name as Name', 'test2.address as Address')
           ->joins(['test2.user_id', 'test.id', 'left'])
           ->create('test');

 

 

# Exclude (ZN >= 5.4.0)


Datagrid üzerinde güncelleme ve ekleme işlemi yapılması istenmeyen kolonları belirtmek için kullanılır.

Parametreler

Strings ...$columns Gösterilmek istenmeyen kolonlar.
Return This

Kullanımı

echo DBGrid::exclude('date', 'image')
        ->hide('addButton')
        ->inputs(['category_id' => function($form, $name, $value)
        { 
            return $form->table('gallery_categories')->select($name, ['id' => 'name'], $value);
        }])
        ->columns('id as ID', 'category_id as CategoryID', 'image as Image', 'date as Date')
        ->limit(10)
        ->create('images');

 

 

# Hide (ZN >= 5.4.0)


Datagrid üzerinde gösterilmek istenmeyen nesneleri gizlemek için kullanılır.

Parametreler

Strings ...$objects Gösterilmek istenmeyen nesneler.
Return This

Kullanımı

echo DBGrid::exclude('date', 'image')
        ->hide('addButton')
        ->inputs(['category_id' => function($form, $name, $value)
        { 
            return $form->table('gallery_categories')->select($name, ['id' => 'name'], $value);
        }])
        ->columns('id as ID', 'category_id as CategoryID', 'image as Image', 'date as Date')
        ->limit(10)
        ->create('images');

 

 

# Inputs (ZN >= 5.4.0)


Datagrid edit ve add menüsünde yer alan inputları değiştirmek için kullanılır. Parametre olarak dizi kabul eder. Dizi anahtarları input'u değişecek kolon adını içermelidir.

Parametreler

Array $inputs Değiştirilecek kolon ve girdi nesneleri.
Return This

Kullanımı

echo DBGrid::exclude('date', 'image')
        ->hide('addButton')
        ->inputs(['category_id' => function($form, $name, $value)
        { 
            return $form->table('gallery_categories')->select($name, ['id' => 'name'], $value);
        }])
        ->columns('id as ID', 'category_id as CategoryID', 'image as Image', 'date as Date')
        ->limit(10)
        ->create('images');

Geri Çağrım İşlevi

Bu fonksiyon 3 parametre kabul eder.

Parametreler

Form $form Form sınıfı nesnesi.
String $name Varsayılan input name değeri.
String $value Varsayılan input value değeri.

Kullanımı

->inputs
([
    'gender' => function($form, $name, $value)
    {
        return $form->select($name, [1 => 'male', 2 => 'female'], $value);
    }
])

 

 

# Outputs (ZN >= 5.4.1)


Veri tablosunun kolon görünümlerini biçimlendirmek için kullanılır. 

Parametreler

Array $outputs Değiştirilecek kolon görünümü.
Return This

Kullanımı

echo DBGrid::exclude('date', 'image')
        ->hide('addButton')
        ->inputs(['category_id' => function($form, $name, $value)
        { 
            return $form->table('gallery_categories')->select($name, ['id' => 'name'], $value);
        }])
        ->outputs
        ([
            'category_id' => function($html, $value)
            { 
                return $this->category = DB::select('name')->where('id', $value)
                                            ->get('gallery_categories')
                                            ->value();
            },
            'image' => function($html, $value)
            { 
                return $html->image(UPLOADS_DIR . $this->category.'/' . $value, 50, 50);
            }
        ])
        ->columns('id as ID', 'category_id as CategoryID', 'image as Image', 'date as Date')
        ->limit(5)
        ->create('images');

Geri Çağrım İşlevi

Bu fonksiyon 2 parametre kabul eder.

Parametreler

Html $html Html sınıfı nesnesi.
String $value Varsayılan kolon değeri.
Object $row Belirtilen satıra ait değerler. Kullanımı DB::row() gibidir.

Kullanımı

->outputs
([
    'category_id' => function($html, $value, $row)
    { 
        return DB::select('name')
                  ->where('id', $row->category_id)
                  ->get('gallery_categories')
                  ->value();
    }
])

 

 

# Add (ZN >= 5.4.1)


Datagrid'in üst orta bölümdeki kısmına nesne eklemek için kullanabilirsiniz.

Parametreler

Strings $ojects Eklenecek nesneler.
Return This

Kullanımı

echo DBGrid::hide('addButton')
     ->add(Form::class('btn btn-danger')->button('btn', 'Button'))
     ->columns('id as ID', 'email as Email', 'name as Name', 'role_id as Role', 'date as Date')
     ->create('users');