Tutorial CRUD Laravel 6 Dengan Bootstrap 4 : Menampilkan Data Dari Database


Tutorial CRUD Laravel 6 Dengan Bootstrap 4 : Menampilkan Data Dari Database

Tutorial CRUD Laravel 6 Dengan Bootstrap 4 : Menampilkan Data Dari Database - Halo teman-teman semuanya, pada kesempatan kali ini kita kan melanjutkan dari pembahasan sebelumnya yaitu instalasi dan persiapan. Pada kesempatan kali ini kita semua akan belajar menampilkan data dari Database.

Langsung saja, pertama kita buat sebuah Database baru dengan nama db_myapp di http://localhost/phpmyadmin.

Setelah berhasil membuat database sekarang silahkan jalankan perintah dibawah ini :

php artisan make:model Post --migration

Perintah diatas digunakan untuk membuat sebuah Model baru beserta dengan file migrationnya. Sekarang kita buka file migration di folder database/migrations. Kemudian cari dan buka file dengan nama tanggal_create_posts_table.php, kurang lebih kodenya seperti berikut ini :

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Kode diatas adalah file migration yang digunakan untuk merancang dan mengatur struktur table yang ingin kita buat, Pada kode diatas kita akan melakukan perubahan di bagian function up yaitu kurang lebih seperti berikut ini :

public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title');
            $table->string('slug');
            $table->text('content');
            $table->timestamps();
        });
    }

Setelah itu silahkan simpan file migration tersebut dan jalankan perintah dibawah ini :

php artisan migrate

Maka jika berhasil kurang lebih akan ada pesan seperti berikut ini :

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0.04 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0.02 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (0.02 seconds)
Migrating: 2020_01_04_062255_create_posts_table
Migrated:  2020_01_04_062255_create_posts_table (0.02 seconds)

Dari perintah php artisan migrate, kita melakukan sebuah migrasi table yang sudah kita buat di file migration diatas dan dijadikan sebuah table baru.

Sekarang coba teman-teman cek Database db_myapp di http://localhost/phpmyadmin, maka kalian akan menemukan table kurang lebih seperti berikut ini :


Sekarang kita lanjutkan membuat sebuah Controller baru, silahkan kalian jalankan perintah dibwah ini :

php artisan make:controller PostsController

Perintah diatas digunakan untuk membuat sebuah controller baru dengan nama PostsController.php yang berada didalam folder app/Http/Controllers. Kurang lebih seperti pada gambar dibawah ini :


Sekarang kita buat sebuah function baru, didalam controller PostsController.php yang sudah kita buat diatas. Dan silahkan ubah PostsController.php seperti dibawah ini :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;

class PostsController extends Controller
{
    public function index()
    {
        $posts = Post::latest()->get();
        return view('posts.index', compact('posts'));
    }
}

Oke sekarang kita lanjutkan membuat sebuah file View. Silahkan buat folder baru dengan nama posts didalam folder resources/views.

Dan silahkan buat file baru dengan nama index.blade.php di dalam folder posts tersebut, dan masukkan kode dibawah ini :

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="//cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
    <title>Data Posts</title>
  </head>

  <body>

    <div class="container" style="margin-top: 80px">
      <div class="row">
        <div class="col-md-12">
          <div class="card">
            <div class="card-header">
              DATA POSTS
            </div>
            <div class="card-body">
              <a href="{{ route('posts.create') }}" class="btn btn-md btn-success" style="margin-bottom: 10px">TAMBAH DATA</a>
              <table class="table table-bordered" id="myTable">
                <thead>
                  <tr>
                    <th scope="col">TITLE</th>
                    <th scope="col">CONTENT</th>
                    <th scope="col">AKSI</th>
                  </tr>
                </thead>
                <tbody>


                  @foreach($posts as $post)
                  <tr>
                      <td>{{ $post->title }}</td>
                      <td>{!! $post->content !!}</td>
                      <td class="text-center">
                          <form onsubmit="return confirm('Apakah Anda Yakin ?');" action="{{ route('posts.destroy', $post->id) }}" method="POST">
                              <a href="{{ route('posts.edit', $post->id) }}" class="btn btn-sm btn-primary">EDIT</a>
                              @csrf
                              @method('DELETE')
                              <button type="submit" class="btn btn-sm btn-danger">HAPUS</button>
                          </form>
                      </td>
                  </tr>
                  @endforeach


                </tbody>
              </table>
            </div>
          </div>
      </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
    <script src="//cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
    <script>
      $(document).ready( function () {
          $('#myTable').DataTable();
      } );
    </script>
  </body>
</html>

Terakhir silahkan buka file web.php di dalam folder routes, dan silahkan ubahlah menjadi seperti berikut ini :

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::resource('/posts', 'PostsController');

Oke sekarang jika kalian jalankan di browser dengan mengetikkan http://localhost:8000/posts maka jika berhasil kurang lebih tampilannya seperti berikut ini :


Sampai disini pembahasan tentang menampilkan data dari Database, kita lanjutkan di artikel selanjutnya yang akan membahas tentang bagaimana cara memasukkan data ke Database atau insert data. Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami