Pendahuluan
Dalam proses pengembangan suatu aplikasi, seringkali kita membutuhkan data awal tiruan atau dummy data untuk memudahkan pengujian dan pengembangan aplikasi kita. Laravel menyediakan suatu fitur yaitu Seeder yang memungkinkan kita untuk mengisi database dengan data awal secara otomatis, sehingga membuat pengembangan aplikasi kita menjadi lebih mudah dan efisien.
Apa itu Seeder pada Laravel?
Seeder pada Laravel merupakan merupakan sebuah class yang memungkinkan kita sebagai web developer untuk mengisi database kita dengan data awal atau dummy data yang telah ditentukan secara otomatis. Seeder memungkinkan kita untuk membuat data awal yang sama untuk setiap penggunaan dalam pembangunan aplikasi. Dengan Seeder, kita dapat memasukkan data awal dalam jumlah yang banyak sekaligus ke dalam database menggunakan Model Factories tanpa perlu menambahkannya satu per satu melalui interface database. Kita hanya perlu menuliskan kode sekali dan Seeder akan memasukkan data tersebut ke dalam database kita secara otomatis.
Seeder sangat berguna dalam tahap pengembangan, uji coba, dan pemeliharaan aplikasi kita untuk mengisi data ke dalam database. Selain itu, Seeder juga memungkinkan pengembang untuk mengelola data dengan lebih mudah, seperti menambahkan, mengubah, atau menghapus data dengan mudah.
Membuat Table Migration Di Laravel
Untuk menggunakan Seeder di laravel, hal pertama yang perlu kita lakukan adalah menentukan model serta data yang akan dimasukkan pada database. Contohnya, kita akan membuat sebuah tabel dengan nama koleksi yang terdiri dari field kode, judul, deskripsi, gambar. Perhatikan data dalam tabel koleksi berikut:
No | Kode | Judul | Deskripsi | Gambar |
---|---|---|---|---|
1 | 9090 | Pemrograman Komputer | Menjelaskan bagaimana memulai membuat program | komputer.jpeg |
2 | 9098 | Jaringan Komputer | Konsep dasar membuat jaringan | jaringan.jpeg |
3 | 9088 | Animasi | Langkah-langkah dasar menjadi seorang animasion | animasi.jpg |
Field dari tabel tersebut akan kita buatkan model sedangkan data dari tabel tersebut kita letakkan di dalam seeder. Oleh sebab itu langkah pertama yang harus kita lakukan adalah membuat tabel terlebih dahulu. Nama tabel yang kita buat adalah "koleksi" namun kita harus menambahkan huruf s dibelakangnya sehingga menjadi "koleksis". Buka kembali projek yang telah kita buat dan buka terminal baru. Ketikkan perintah berikut:
php artisan make:migration create_koleksis_table
Tekan Enter.
Buka struktur projek kita dan cari folder Database => Migration. Terdapat 4 buah file. Salah satunya bernama creates_koleksis_table. Silahkan buka file tersebut. Kita akan membuat skema di dalam file tersebut.
Dalam method up(), terdapat method create() dan class Schema yang berfungsi untuk membuat tabel baru dengan nama pages. sedangkan di method down() sendiri berisi method dropIfexists() dari class Schema yang berfungsi untuk menghapus tabel pages apabila di-rollback.
Mari kita mulai membuat schema users.
public function up(): void{Schema::create('koleksis', function (Blueprint $table) {$table->id();$table->integer('kode');$table->string('judul', 50);$table->string('deskripsi');$table->string('gambar');$table->timestamps();});}
php artisan migrate
php artisan make:model Koleksi
....class Koleksi extends Model{use HasFactory;protected $quarded = ['id'];protected $fillable = ['kode','judul','deskripsi','gambar'];}
php artisan make:seeder KoleksiSeeder
<?phpnamespace Database\Seeders;use Illuminate\Database\Console\Seeds\WithoutModelEvents;use Illuminate\Database\Seeder;use App\Models\Koleksi; //Jangan :lupa untuk memanggil modelnyaclass KoleksiSeeder extends Seeder{/*** Run the database seeds.*/public function run(): void{Koleksi::create(['kode' => 9090,'judul' => 'Pemrograman Komputer','deskripsi' => 'Menjelaskan bagaimana memulai membuat program','gambar' => 'komputer.jpeg']);Koleksi::create(['kode' => 9098,'judul' => 'Jaringan Komputer','deskripsi' => 'Konsep dasar membuat jaringan','gambar' => 'jaringan.jpeg']);Koleksi::create(['kode' => 9090,'judul' => 'Animasi','deskripsi' => 'Langkah-langkah dasar menjadi seorang animasion','gambar' => 'animasi.jpg']);}}
php artisan db:seed KoleksiSeeder
php artisan migrate:fresh