Yii2 CRUD Örneği



        Bu yazımda Gii'yi kullanarak oluşturduğumuz veritabanı tablosunda CRUD işlemlerini gerçekleştireceğimiz başlangıç düzeyinde bir örnek yapacağım.
  • phpMyAdmin kullanarak bir veritabanı ve 'users' isminde bir tablo oluşturun. Bu tablonun da id, username, password, email, cell_phone gibi alanları olsun.
  • Oluşturulan bu veritabanının tablosuna göre Gii'yi kullanarak bir Model oluşturun. Bunun için;
    • Gii'de Model Generator kısmında Table Name bölümüne tablonuzun ismini yazmak yeterli olacaktır. Bir sonraki alan olan Model Class otomatik oluşturulacaktır.
    • Preview butonu ile önizleme yapıp Generate butonu ile de Model oluşturma işlemini tamamlamış olursunuz.
  • Model'i oluşturduktan sonra bu tabloyu kullanabilmek için yani Create, Read, Update, Delete (CRUD) işlemlerini gerçekleştirebilmek için Gii Modülünde CRUD Generator kısmından yararlanabiliriz. Oluşturmak için;
    • Gii'de CRUD Generator kısmında alanları aşağıdaki gibi doldurun:
      • Model Class: app\models\Users
      • Search Model Class: app\models\UsersSearch
      • Controller Class: app\controllers\UsersController
    • Preview butonu ile önizleme yapıp Generate butonu ile de CRUD oluşturma işlemini tamamlamış olursunuz.
  • Her şey yolunda gitmişse localhost/uygulama_adi/web/index.php/users adresinden 'users' tablomuzu görüntüleyebiliriz (burada dikkat edilmesi gereken bir nokta eğer URL düzenlemesi yapılamışsa tabloya localhost/uygulama_adi/web/index.php?r=users adresiyle erişmeniz gerektiğidir, uygulama_adi kısmına da dikkat ediniz). 

        Açılan sayfada 'Create Users' butonu ile yeni kullanıcı oluşturabilrisniz (C). Kaydın en sağ tarafındaki üç simgeden ilki olan göz, görüntüleme işlemini gerçekleştirir (R). İkincisi kaydı güncellemeye yarar (U) ve sonuncusu da kaydı siler (D). Arama işlemi içinse kayıtların üstündeki boş alanlar kullanılır.

        Genel anlamıyla yapmak istediğimiz şeyleri yaptık. Bir kaç işlemle CRUD işlemlerinin hepsini gerçekleştirebiliyoruz ne büyük rahatlık. Fakat ya forma yeni bir şeyler eklemek istersek? Mesela; Create formunda 'Password' alanına ek olarak 'Password Repeat' alanı gibi.. İşte bu gibi durumlarda formlara ekleyeceğimiz yeni alanlar veritabanında bulunmadığı için doldurulan model kaydedilmek istenince bu kısımlar sorun çıkarır. Bunu önlemek için Yii2 Seneryoları kullanmayı önerir. Bu ise bir sonraki yazımızın konusu. İyi çalışmalar.