Untuk membuat aplikasi blog atau majalah online tentunya selalu berkaitan dengan kategori, dalam kasus kali ini postingan akan berkaitan dengan kategori. Tentunya hal ini memerlukan sebuah relasi dimana Relasi dalam database merupakan hubungan yang terjadi pada suatu tabel dengan lainnya yang mempresentasikan hubungan antar objek dan berfungsi untuk mengatur operasi suatu database agar tidak terjadi ambiguity.
Relasi yang digunakan pada kasus kali ini adalah Many to Many yaitu “Satu baris atau lebih data pada tabel pertama bisa dihubungkan ke satu atau lebih baris data pada tabel ke dua”. Artinya ada banyak baris di tabel satu dan tabel dua yang saling berhubungan satu sama lain. Ialah : relasi antar tabel postingan dan tabel kategori. Satu baris postingan bisa berhubungan dengan banyak baris kategori dan begitu juga sebaliknya.
Pada gambar 14.6 dibawah ini diperlihatkan bagaimana diagram database many to many yang akan di implementasikan pada aplikasi kali ini.
DATABASE DIAGRAM
![]() |
Gambar 14.6 Database Diagram |
Terlihat pada diagram diatas memiliki tiga buah tabel yaitu:
- Post
- Post_Category
- Category
Bagaimana mengimplementasikannya pada laravel ikuti catatan berikut ini.
Pertama buat tabel post melalui terminal dengan perintah.
php artisan make:model Post -mDengan schema seperti pada kode dibawah ini
Schema::create('posts', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->string('slug'); $table->text('content'); $table->timestamps(); });Kemudian buat tabel categories melalui terminal dengan perintah.
php artisan make:model Category -mdengan skema seperti kode dibawah ini
Schema::create('categories', function (Blueprint $table) { $table->increments('id'); $table->string('category'); $table->string('symbol'); $table->string('slug'); $table->timestamps(); });Lalu yang ketiga buat table category_posts melalui terminal dengan perintah.
php artisan make:model CategoryPost -mDengan skema seperti kode dibawah ini
Schema::create('category_posts', function (Blueprint $table) { $table->increments('id'); $table->integer('post_id')->unsigned(); $table->foreign('post_id')->references('id')->on('posts')->onDelete('restrict'); $table->integer('category_id')->unsigned(); $table->foreign('category_id')->references('id')->on('categories')->onDelete('restrict'); $table->timestamps(); });kemudian ketik pada terminal perintah dibawah ini untuk menciptakan tabel.
php artisan migrateMaka ketiga tabel diatas akan tercipta, selanjutnya untuk menyimpan postingan dengan beberapa kategori adalah sebagai berikut.
public function store(Request $request) { $post = new Post; $post->title = Input::get('title'); $post->slug = str_slug(Input::get('title'), "-"); $post->content = Input::get('content'); $post->save(); foreach(Input::get('category') as $value) { $category_post = new CategoryPost; $category_post->post_id = $post->id; $category_post->category_id = $value; $category_post->save(); } Session::flash('message', 'Menambah posting sukses!'); return Redirect::to('dashboard/post'); }Dan view untuk menampilkan form input pembuatan postingan dan pilihan kategori dengan menggunakan checkbox seperti kode dibawah ini.
Tidak ada komentar:
Posting Komentar