Artikel Tutorial laravel Menggunakan Seeder ini merupakan lanjutan dari artikel sebelumnya (https://soft-gain.com/2020/05/29/hak-akses-user-menggunakan-laravel-aplikasi-stok-barang-part-2/). Artikel tutorial laravel menggunakan seeder kali ini tidak akan terlalu panjang karena hanya akan membahas bagaimana cara menggunakan seeder pada Laravel. Seeder sendiri biasa nya di pakai untuk pengisian data dummy pada database untuk keperluan testing, hanya saja pada kali ini kita akan mencoba mengimplementasikan fitur seeder ini untuk men-format atau refresh table users pada aplikasi inventory yang coba kita kembangkan ini. Untuk detail tentang seeder bisa di lihat di dokumentasi resminya (https://laravel.com/docs/7.x/seeding).
Pertama-tama kita akan membuat seeder baru, pembuatan seeder bisa di lakukan melalui CMD dengan mengetikan perintah berikut ini :
php artisan make:seed namaSeederBaru
Atau bisa di lihat pada gambar ini :

Berikutnya buka file seeder yang baru saja kita buat, letak nya ada di database/seeds/reformatTableUser.php. Dan ubah isinya seperti gambar di bawah ini :
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class reformatTableUser extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::statement("truncate table users");
DB::table('users')->insert([
'name' => 'Admin',
'email' => 'admin@soft-gain.com',
'password' => Hash::make('12345678'),
'role' => 'admin',
]);
}
}
Perhatikan di atas, didalam method run kita bisa menyisipkan berbagai operasi yang berhubungan dengan database. Contohnya sata menggunaan DB::statement yang bisa di gunakan untuk mengeksekusi RAW sql statement, dan saya juga menggunakan statement db insert untuk meng-inject data baru pada database.
Dan ini adalah kondisi dari table users sebelum seeder di jalankan :

Didalam nya masih berisi 3 data default sebelum seeder di jalankan. Berikutnya kita coba jalankan perintah seeder untuk men-format table users di atas. Jalan kan perintah seperti di bawah ini :

Penting! Saya secara peribadi lebih suka menjalankan seeder secara specific dengan menyisipkan perintah –class=namaSeeder. Karena jika kita hanya menjalankan perintah tanpa specific class (php artisan db:seed) maka semua seeder yang pernah di buat akan di jalankan sekaligus, tentu hal ini sangat tidak baik karena dapat merusak environment database yang kita punya sekarang.
Dan ini lah hasil dari seeder yang sudah kita jalankan :

Bisa di lihat di atas data yang sebelumnya ada 3 menjadi hanya 1 buah saja sesuai dengan seeder yang kita jalankan.
Kesimpulannya, saya pribadi suka memakai seeder bukan hanya sebagai peng-inject data testing, tapi terkadang juga saya suka memanfaatkannya untuk kebutuhan lain seperti insert atau update data berukuran besar yang memerlukan pengeksekusian dari sisi aplikasi / laravel dalam hal ini. Untuk full source nya bisa di ambil di repo saya (https://github.com/ImmanuelJL/belajar-laravel). Sekian terima kasih.