Tuesday, March 6, 2018

Membuat Aplikasi CRUD secara otomatis menggunakan Gii di Yii 2.0



Yii memiliki tool untuk membuat Model, Controller, Form, Module, bahkan aplikasi CRUD secara otomatis. Keuntungan membuat aplikasi berbasis framework salah satunya yaitu adanya fitur otomasi untuk membuat aplikasi dasar CRUD (Create-Read-Update-Delete). Aplikasi CRUD telah disempurnakan dari sebelumnya. Salah satu contoh yaitu jika kita menyusun database-model (tabel) yang memiliki field yang berproperty enum, maka pada view nantinya input property yang dihasilkan bukan lagi textInput, melainkan dropdown menu yang sudah terkoneksi model. Dan masih ada beberapa fitur lagi yang ditambahkan.

Oke mari kita mulai!

Pertama-tama tentunya Template Yii2.0 sudah harus ter-install. Mari kita gunakan template Yii2.0 advance. Lihat Instalasi Yii 2.0 Framework.


Selanjutnya kita membutuhkan Model database untuk bekerja dengan tools Gii CRUD Generator ini. Sebagai contoh mari kita buat database di MySQL dengan nama yii2belajar dan tambahkan tabel tambah_file sbb:

CREATE TABLE IF NOT EXISTS `tambah_file` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `file_upload` int(11) NOT NULL,
  `avatar_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Koneksikan database yang anda buat. Untuk cara Koneksi database di Yii2, klik disini

Pada template Advanced anda dapat memilih membuat/menempatkan aplikasi CRUD anda pada frontend maupun backend. Pada kesempatan ini mari kita gunakan frontend. Buka Gii Tool di pada template advance frontend anda dengan mengetikkan sbb:

http://localhost/advanced/frontend/web/index.php?r=gii
Untuk membuat CRUD kita harus membuat Model terlebih dahulu, selanjutnya untuk Controller dan View akan generate otomatis pada saat kita membuat CRUD. Pada Model Generator klik Start.


Tambahkan nama tabel pada Table Name sesuai yang kita buat sebelumnya yaitu:
tambah_file
Beri nama model sesuai tabel pada Model Class. Standarisasi penamaan model yaitu selalu diawali dengan huruf kapital. Saran saya untuk memudahkan penamaan, jika nama yang digunakan lebih dari satu suku kata maka sebaiknya setiap awal kata diawali dengan huruf kapital. Dalam hal ini nama tabel tambah_file maka nama model adalah:
TambahFile
Namespace pada template advance disesuaikan dengan layer yang kita gunakan. Apabila kita menggunakan layer frontend maka namespace menjadi frontend\models atau jika backend maka menjadi backend\models. (Pada advance template sebaiknya jangan menggunakan menggunakan app\models). Saat ini kita menggunakan layer frontend, jadi namespacenya menjadi:
frontend\models


Setelah selesai penamaannya, klik Preview, 

kemudian Generate. Dan akan muncul tampilan seperti di bawah, dimana Model anda telah berhasil dibuat.

Model telah selesai dibuat! Nah sekarang tinggal membuat CRUD. Pada CRUD Generator klik Start.


Pada Model Class diisi dengan
frontend\models\TambahFile
Pada Search Model Class diisi dengan
frontend\models\TambahFileSearch
Penamaan Controller selalu ditambahkan/disambung dengan kata Controller contoh: NamaController. Untuk itu nama controller saat ini menjadi TambahFileController. Isi pada Controller Class dengan
frontend\controllers\TambahFileController 


Setelah selesai dengan penamaan ini, klik Preview. Maka akan tampil beberapa form yang nantinya akan di-generate, yaitu modelSearch, Controller, serta beberapa view yang nantinya kan digunakan end-user (pengguna program anda) dalam berinteraksi dengan aplikasi CRUD yang dibuat.

Pastikan semua form sudah dicentang, jika tidak form yang tidak dicentang tidak akan muncul. Sesudah itu klik Generate. Sehingga akan muncul tampilan seperti di bawah:
Aplikasi CRUD anda telah selesai! Untuk mengakses URL aplikasi ini, tinggal mengetikkan:
http://localhost/advanced/frontend/web/index.php?r=tambah-file

Jika sebelumnya anda membuat Model dan CRUD pada layer backend, maka URLnya adalah:
http://localhost/advanced/backtend/web/index.php?r=tambah-file
Jika anda ingin melakukan perubahan pada codenya, folder file terdapat di sini:

Untuk frontend:
models:
advanced/frontend/models
controllers:
advanced/frontend/controllers
view
advanced/frontend/views

Untuk backend:
models:
advanced/backend/models
controllers:
advanced/backend/controllers
view
advanced/backend/views
Selesai! Semoga bermanfaat & Selamat mencoba.


Berbagi Lebih Nikmat..

0 comments:

Post a Comment