Monday, June 22, 2020

MENGGUNAKAN ACCESSORS & MUTATORS DI LARAVEL







Untuk mendefinisikan accessor, buat metode getFooAttribute pada model Anda di mana Foo adalah nama berhias "studly" dari kolom yang ingin Anda akses. Dalam contoh ini, kita akan mendefinisikan accessor untuk atribut first_name. Accessor akan secara otomatis dipanggil oleh Eloquent ketika mencoba untuk mengambil nilai atribut first_name:

Disini ketika kita ingin menambahkan gambar di penyimpanan database, nah gimana untuk menerapkan agar kita bisa menyimpan gambar di dalam database supaya pada saat menyimpan gambarnya tersebut bisa full Url

Pertama kita buka dulu model





Di model sebelumnya kita telah membuat relasinya untuk menghubungakan antara product dengan model productGallery, di data prodcut kita bisa mengambil data yang ada di dalam productGallery secara langsung dengan membuat relasi gallery seperti gambar yang dibawah





Setelah itu untuk bagian di file model productGallery ada beberapa fungsi yang akan ditambahkan.





Setelah kita mencoppy file pada eloquent dari file lain di bagian relasinya kita akan menganti dari prodcut menjadi galleries dan dari HasMany menjadi BelongTo yang maksudnya productGallery ini kepunyaan dari relasinya product.





Setelah itu kita akan menambahkan satu function lagi dimana function ini akan akan berfungsi di database ketika kita menyimpannya  foto tersebut tidak tersimpan secara  default  / tidak bersama full Urlnya, jadi tidak menggunakan full Http ibaratnya hanya pindah satu folder saja / cuma menyimpan folder-folder dan nama filenya saja tetapi tidak menyimpan bersama full Urlnya,  ini akan menjadi masalah ketika kita akan membuat API dari data tersebut karna nanti kalau kita mengakses/ membuatkan APInya gambarnya tidak muncul sehingga bagian dari front-end gagal menampilkan gambar ketika  mengload data tersebut

Disini kita akan memanfaatkan fungsi dari ASSESSORS dan MUTATORS

Tapi disini kita hanya mengunakan assessors saja





Fungsi assessors ini membuat yang tadinya Url gambar tadi tidak menggunakan Http menjadi menggunakan Http Full Urlnya.

Nah untuk penerapannya kita bisa melihat seperti gambar yang dibawah




Jadi fungsi yang ada diatas kata getFirstname /getPhotoAttribute,  nah yang firstname/ photo itu adalah nama file gamabar yang akan disimpan, jadi kita mengubah file foto yang ada didalam database $value, $value itu adalah databasenya, jadi disini kita akan mengganti $value yang ada didalam database menjadi Full Url. Dan kita return ke url Store, karena gambar yang kita simpan berada didalam folder storage.

Setelah itu kita akan menggunakan fungsi file storage link di laravel agar gambar yang kita simpan bisa ditampilkan dilayar,  kalian harus menjalankan comman seperti yang dibawah



Fungsinya dari storage:link ini adalah menempelkan antara folder storage yang ada didalam laravel agar bisa diakses di public, jadi file ini akan bisa diakses oleh user dari manapun / secara public dan menampilkan data gambar yang telah diinputkan

0 komentar:

Post a Comment