Upload Gambar Menggunakan Yii2 dan Penggunaan Class TimestampBehavior
Ditulis oleh
mrjj

Pembahasan ini merupakan kelanjutan dari materi sebelumnya yaitu :
Sebelum melanjutkan pada pembahasan ini diharapkan agar menyelesaikan project diatas karena masih berhubungan, cuman pada penambahan yaitu pembuatan upload gambar dan penggunaan class TimestampBehavior class tersebut digunakan untuk melakukan insert dan update data pada kolom created_at dan updated_at, jadi kolom tersebut akan terisi secara otomatis ketika melakukan penginputan data ataupun ketika data tersebut diubah.
Modifikasi Model Buku
Sebelum melakukan upload gambar kita akan melakukan modifikasi terlebih dahulu pada model Buku.php, perubahan pada file tersebut ada penambahan validasi untuk kolom foto menjadi required atau tidak boleh kosong ketika melakukan input dan validasi ektensi gambar menjadi gif,jpg dan png jadi selain ektensi tersebut akan muncul peringatan dan tidak bisa diupload.
berikut perubahan pada function rules :
kode diatas ada penambahan validasi foto wajib diisi ketika simpan data dan update data.
dan penambahan validasi ektensi gambar :
validasi diatas digunakan agar gambar yang dapat diupload hanya dengan ektensi gif,jpg dan png saja selain file tesebut akan ditolak.
Untuk menggunakan class TimestampBehavior kita perlu menambahkan header yaitu :
use yiibehaviorsTimestampBehavior;
setelah itu menambahkan method baru namanya behavios sebagai berikut :
sehingga kode lengkap nya adalah sebagai berikut :
Code Snippet
|
Code Snippet
|
Upload Gambar
Untuk melakukan upload gambar kita perlu melakukan modifikasi pada file _form pada folder view seperti berikut :
modifikasi activeForm dengan menambahkan array options menjadi multipart.form-data agar form dapat membaca file yang akan kita upload, selain itu kita perlu juga menambahkan fileinput dibawah kolom pengarang :
kode diatas adalah input file menggunakan yii2 digunakan untuk upload file, kode lengkap pada file _form.php adalah sebagai berikut :
Code Snippet
|
Code Snippet
|
Modifikasi BukuController
modifikasi dilakukan pada actionCreate,actionUpdate dan actionDelete, pada action create tedapat perubahan agar file yang diupload tersimpan kedalam sebuah folder uploads untuk itu tambahkan lah sebuah folder uploads kedalm project anda terlebih dahulu dan nama file akan tersimpan kedalam database. berikut adalah perubahan pada actionCreate
Code Snippet
|
Code Snippet
|
selain itu kita akan merubah actionUpdate menjadi seperti berikut :
Code Snippet
|
Code Snippet
|
Kemudian mengubah actionDelete agar ketika data dihapus maka file akan ikut terhapus, berikut perubahan pada actionDelete
Code Snippet
|
Code Snippet
|
Modifikasi Index.php pada view yang ada didalam folder buku :
agar gambar dapat tampil pada tabel kita juga perlu modifikasi file index.php yaitu menambahkan beberapa kolom yaitu kolom created_at menjadi tgl.simpan dan update_at menjadi tgl.ubah dan kolom gambar untuk menampilkan gambar yang sudah diupload. berikut adalah perubahan pada file index.php yang ada pada folder buku.
Code Snippet
|
Code Snippet
|