Membuat Blog dengan Laravel 5.6 dan AdminLTE 3 (4) – Membuat Data yang Dinamis

Pada bagian ke empat ini, kita akan melakukan hal berikut :

  1. Mengganti data post yang statis dengan data yang berasal dari tabel posts.
  2. Pada home screen, post yang ditampilkan adalah post yang sudah di published.

Pertama-tama, kita tambahkan route di routes/web.php :

Buka terminal dan buat BlogController.php :

BlogController.php akan muncul di dalam folder app/Http/Controllers.

Tambahkan public function index()

Modifikasi resources/views/blog/index.php

Post akan muncul namun isinya sama. Kita akan melakukan beberapa perubahan :

Modifikasi model Post.php dan tambahkan accessor untuk mengambil attribut image_url getImageUrlAttribute :

Buka Post.php model dan buat relationship dengan model User. Setiap post memiliki satu penulis. Kita mengambil informasi penulis dari tabel user.

Buka User model dan buat relationship dengan Post model. Satu user dapat menulis lebih dari satu post. Dihubungkan dengan kolom author_id pada tabel post.

Modifikasi BlogController.php dengan menambahkan method with() supaya lebih efisien pemanggilan databasenya.

Ganti data statis menggunakan method diffForHumans yang disediakan oleh Carbon.

Buka Post.php model dan buat date accessor :

Buat scopelatestFirst() di Post.php model untuk menampilkan post yang terakhir terlebih dahulu.

Selanjutnya kita akan membuat pagination. Modifikasi BlogController.php :

Modifikasi resources/views/blog/index.php

Lalu, kita akan menampilkan post yang sudah dipublish saja. Kita perlu menambahkan satu kolom di tabel posts. Buka terminal dan ketik :

Modifikasi file migration :

Modifikasi poststableseeder.php dan tambahkan nilai published_at :

Lakukan migrasi dan seed :

Buat scope published di dalam Post Model, dan modifikasi BlogController  :

Modifikasi layouts/main.blade.php untuk menambahkan route ke Home :

Berikut ini file – file yang kita rubah :

app\Post.php

app\Http\Controllers\BlogController.php

resources\views\blog\index.blade.php

Hasilnya akan seperti ini :

dynamic data

Github Commit.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.