Pada tutorial Laravel sebelumnya saya telah menyuguhkan tutorial bagimana membuat CRUD di Laravel dimana pembahasan saya sajikan secara sepotong demi sepotong atau secara terpisah antara fungsi satu dengan lainnya.

Nah disini saya akan sajikan membuat CRUD dengan Laravel secara utuh. Sebagaimana telah banyak diketahui bahwa CRUD merupakan singkatan dari fungsi Create Read Update dan Delete, dengan demikian akan lebih baik jika pembahasannya kita sajikan secara utuh.

Disini kita akan membahah tutorial membuat CRUD dengan Laravel dan route resource. Iya, benar satu route resource ini di Laravel sudah bisa kita gunakan untuk menjalankan fungsi menampilkan data, mengedit data, menginput data, dan menghapus data, tanpa harus membuat route lainnya.

Oke langsung saja kita kupas tuntas disini cara kerjanya.

Membuat Project Laravel Di Web Server
Untuk membuat project di Laravel pertama-tama yang harus kita lakukan adalah menginstallnya di web server kita melalui composer, oke sekarang buka jendela Terminal/Command Prompt, kemudian dengan perintah change directory (cd) arahkan langsung ke lokasi web server kita masing-masing.

Misal disini saya menggunakan WAMPSERVER sebagai web server dan lokasi web server saya install pada drive (D), maka saya arahkan ke folder berikut:

D:>cd wamp64\www

Kita juga bisa menggunakan XAMPP sebagai web server kita, sehingga kita arahkan ke folder berikut:

D:>cd xampp/htdocs

Melakukan Intalasai Laravel Melalui Composer
Salah satu cara termudah yang diberikan Laravel dalam melakukan instalasi adalah kita dapat mengunduh atau menginstall Laravel pada web server kita melalui composer. Jalankan perintah composer berikut pada jendela Terimanal/ Command Prompt.

composer create-project --prefer-dist laravel/laravel laravel6x

Perintah diatas akan membuat sebuah folder project kerja dengan nama “laravel6x” pada folder D:/wamp64/www. Seperti gambar berikut:

Proses instalasi laravel dijalankan
Proses instalasi Laravel dijalankan

Sambil nyeruput secangkir kopi yang selalu setia menemani saat-saat coding, tunggulah dengan sabar sampai proses instalasi selesai dengan sempurna, sehingga menciptakan application key seperti berikut.

Proses instalasi Laravel selesai
Proses instalasi Laravel selesai

Untuk memastikan berhasil semua, mari kita coba jalankan project Laravel yang baru saja kita install, gunakan perintah change directory (cd) lalu arahkan pada project Laravel kita, lalu ketikkan perintah berikut pada Terminal / Command Prompt:

php artisan serve

Kemudian buka web browser anda dan kunjungi url berikut:

localhost:8000

Jika instalasi berjalan sempurna, maka akan terlihat seperti gambar berikut:

Project Laravel berhasil dijalankan
Project Laravel berhasil dijalankan

Sampai disini proses instalasi Laravel melalui composer telah selesai.

Menghubungkan Project Laravel Dengan Database
Untuk membuat proses login dan register, maka hal yang perlu disiapkan pertama adalah membuat database, selanjutnya kita bisa menambahkan tabel yang kita perlukan untuk proses login dan register.

Untuk menghubungkan project Laravel kita dengan database, pada umumnya bisa dilakukan dengan dua (20) cara yaitu, pertama kita bisa memanfaatkan file .env dimana file ini dapat kita temukan pada core bagian terluar laravel, kedua kita bisa mengatur konfigurasi database pada file config/database.php.

Berikut adalah tampilan kita melakukan pengaturan database dengan menggunakan file .env.

Silahkan teman-teman sesuaikan pengaturan database seperti contoh diatas.

Setting databse Laravel melalui env file
Setting database di Laravel melalui env file

Sampai disini pengaturan database di Laravel selesai.

Meyiapkan Kebutuhan Tabel Login dan Register di Laravel
Laravel telah menyiapkan perintah artisan untuk membuat tabel guna keperluan login dan register, tidak hanya itu Laravel juga telah menyiapkan file migration untuk menciptakan tabel user, sehingga kita bisa langsung gunakan perintah migrate untuk membuat tabel nya.

Oke langsung saja kita eksekusi, jalankan perintah php artisan migrate seperti berikut:

php artisan migrate

Ya tentu saja, perintah diatas digunakan untuk menciptakan tabel di database. Nah sekarang coba kita cek database, sekarang tabel user sudah dibuatkan oleh Laravel.

Membuat Login dan Register Dengan Laravel
Oke, teman-teman jika dilihat kembali saat melakukan instalasi Laravel di tutorial ini, kita bisa perhatikan bahwa kita berhasil menginstall project Laravel versi Laravel 6.xx, maka untuk membuat login dan register Laravel disini akan kita lakukan cara sesuai versi Laravel nya.

Jika pada Laravel versi 5.xx kita dapat membuat login dan register hanya dengan menjalankan perintah php artisan make:auth, maka pada Laravel versi 6.xx dan versi 7.x keliatannya berbeda.

Merujuk pada dokumentasi resmi Laravel, maka untuk membuat login dan register di Laravel versi 6.xx dan versi 7.x kita harus menjalankan perintah berikut.

composer require laravel/ui

kemudian jalankan perintah artisan berikut:

php artisan ui vue --auth

Dan tunggu sampai selesai, setelah selesai sekarang mari kita jalankan project Laravel dengan perintah artisan, oke buka jendela Terminal/Command Prompt dan jalankan perintah berikut.

php artisan serve

Kemudian buka web browser dan akses url berikut:

localhost:8000

Jika berjalan dengan baik, maka kita akan menemukan dua tombol menu login dan register pada bagian header, seperti gambar berikut:

Tombol Login dan Register berhasil dibuat Laravel
Tombol Login dan Register berhasil dibuat Laravel

Teman-teman bisa meregisterkan akun dengan klik menu register, maka akan ditampilkan halaman registrasi akunuser, coba kita daftarkan satu akun user dan klik tombol register.

Form registrasi akun di Laravel
Form registrasi akun di Laravel

Maka data user yang kita daftarkan akan disimpan pada tabel users, dan kita langsung di alihkan ke halaman dashboard user.

Selain itu, kita juga sekarang punya menu logout yang disediakan oleh Laravel. Bisa kita temukan pada menu kanan paling atas untuk melihat menu logout, seperti tampak berikut.

Setelah logout, cobalah untuk login kembali dengan mengakses menu Login, dan isikan akun yang telah kita registerkan tadi kemudian klik tombol Login, maka kita kan berhasil login.

Form Login akun Laravel
Form Login akun Laravel

Sampai disini proses membuat login dan register di Laravel selesai.

Membuat CRUD di Laravel Dengan Route Resource
Operasi CRUD di project tutorial Laravel kali ini kita akan bermain-main dengan data kontak, teman-teman bisa mempraktikkannya dengan data lainnya, seperti data pegawai, atau lainnya.

CRUD adalah operasi dari Create, Read, Update, dan Delete. Ya, meskipun judul diatas menggunakan judul “Tutorial Laravel Lengkap Membuat CRUD di Laravel dengan Route Resource”, tetap saja untuk membahas operasi CRUD ini harus kita jabarkan satu persatu heheee. Oke lanjut… berikut adalah step by step membuat CRUD di Laravel dengan Route Resource.

Menambahkan Routing Route Resource di Laravel
Semua routes Laravel harus di definisikan di file route files Laravel. Dimana lokasi file ini bisa kita jumpai pada routes directory pada folder “routes/web.php”.

Routing adalah proses pengiriman data maupun informasi ke pengguna melalui sebuah permintaan ke alamat yang sudah terdaftar. Kemudian alamat tersebut akan memproses permintaan yang kita buat. Setelah proses selesai maka akan menghasilkan sebuah output atau hasil dari proses permintaan tersebut.

Oke, selanjutnya kita buka file web.php pada folder “routes/web.php” dan tambahkan baris routing seperti berikut.

Route::resource('kontak', 'KontakController');

Sehingga, secara keseluruhan akan seperti berikut:

<?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');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::resource('kontak', 'KontakController');

Nah, sampai disini penambahan routing route resource selesai.

Membuat tabel kontak dan database migration
Ya, tentu saja untuk bisa menampilkan data dari database dengan Laravel kita memerlukan sebuah tabel dan data pada database, nantinya data tersebut akan kita panggil dan tampilkan ke view. Sehingga saya perlu membuat tabel dan menambahkan data.

Untuk membuat tabel pada Laravel kita bisa memanfaatkan perintah artisan dan migrationnya Laravel. Oke sekarang buka jendela Terminal/Command Prompt pada desktop anda, masih aktif pada lokasi project Laravel jalankan perintah artisan berikut:

php artisan make:model Kontak --migration

Kode diatas akan menciptakan sebuah file Model “Kontak.php” pada folder “App/Kontak.php”, dan file kontak migrations pada folder “database/migrations”, seperti pada gambar berikut:

Selanjutnya kita buka file database migrations kontak pada folder “database/migrations”, kemudian pada bagian up() kita ketikkan kode seperti berikut:

public function up()
{
Schema::create('kontaks', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('nama_lengkap');
$table->string('email');
$table->string('pekerjaan');
$table->string('alamat');
$table->timestamps();
});
}

Sehingga secara lengkap file nya akan seperti berikut:

<?php

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

class CreateKontaksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('kontaks', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('nama_lengkap');
            $table->string('email');
            $table->string('pekerjaan');
            $table->string('alamat');  
            $table->timestamps();
        });
    }

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

Kemudian jalankan perintah artisan berikut:

php artisan migrate

Nah sekarang kita telah berhasil membuat satu buah tabel dengan nama “kontaks”, jika kita cek pada databse MySQL maka akan tampak seperti berikut:

Tabel kontaks berhasil diciptakan

Selanjutnya mari kita tambahkan beberapa record data pada tabel “kontaks”.

Menambahkan Data Dengan Database Seeder Dan Faker Pada Laravel
Database seeder atau database seeding di laravel adalah fitur untuk membuat perintah mengisi data di tabel database dengan data palsu. Biasanya data hasil seeding ini digunakan sebagai data testing atau ujicoba saat pengembangan aplikasi.

Membuat Database Seeder di Laravel
Untuk membuat seeder di Laravel, pertama buka jendela Terminal/Command Prompt, kemudian gunakan perintah change directory (cd) dan arahkan ke folder project Laravel.

Kemudian ketikkan perintah artisan berikut:

php artisan make:seeder KontakSeeder

Maka akan dibuat sebuah file seeder “KontakSeeder.php” pada folder “database/seeds/KontakSeeder.php”, seperti pada gambar berikut.

Membuat database seeder Laravel
Membuat database seeder Laravel

Menggunakan Faker Pada Laravel
Seperti apa yang dimaksud pada judul dari tutorial ini adalah bagimana kita menggunakan Seeding Database Dan Faker Pada Laravel. Setalah kita berhasil mempraktikkan penggunaan database seeder atau seeding database di Laravel, maka selanjutnya kita akan praktikkan penggunaan Faker pada Laravel.

Nah sebelumnya saya jelaskan kembali disini apa itu Faker? Ya, Faker adalah library open-source yang dibuat oleh Francois Zaninotto, yang berguna untuk membuat data palsu, atau data acak, atau data random untuk kepentingan ujicoba atau testing aplikasi. Faker mampu meng-generate ratusan bahkan ribuan data palsu untuk kegunaan data testing.

Nah, bagaimana teman-teman, sudah paham akan kegunaan Faker kan?

Nah, disini saya akan mencoba meng-generate 10 data palsu dan kita insert kan ke dalam tabel “kontaks”.

Oke, langsung saja kita eksekusi caranya seperti berikut.

Menambahkan Data Menggunakan Faker di Laravel
Buka file KontakSeeder.php yang ada pada folder “database/seeds/KontakSeeder.php”, dan ketikkan kode berikut.

<?php

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;

class KontakSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    
    public function run()
    {
        $faker  = Faker::create('id_ID');
        for($i=1; $i <= 10; $i++){
            DB::table('kontaks')->insert([
                'nama_lengkap' => $faker->name,
                'email' => $faker->email,
                'pekerjaan' => $faker->jobTitle,
                'alamat'    => $faker->address
            ]);
        }
    }
}

Mari kita perhatikan perintah kode diatas, untuk menggunakan Faker, pertama kita harus memanggil class Faker seperti berikut.

use Faker\Factory as Faker;

Kemudian kita simpan perintahnya kedalam variabel $faker, seperti berikut.

$faker = Faker::create('id_ID');

Perhatikan dalam parameter create() diatas saya menggunakan kode ‘id_ID’ yang berarti menandakan id negara Indonesia, sehingga nantinya data-data yang diberikan Faker adalah data-data dari negara Indonesia. Mungkin teman-teman bisa mencoba dengan berbeda simbol negara.

Kemudian disini saya menggunakan perulangan for sebanyak 10 kali, agar si Faker meng-generate 10 data random untuk diinputkan ke tabel “kontaks”.

Oke, sekarang kita jalankan database seeder KontakSeeder.php dengan perintah artisan seperti berikut.

php artisan db:seed --class=KontakSeeder

Maka Faker akan membuatkan data tambahan sebanyak 10 record, sesuai perintah perulangan for pada baris perintah kode yang kita buat. Jika kita cek di database tabel “kontaks” maka akan kita jumpai data seperti contoh berikut.

data hasil Laravel Faker
data hasil Laravel faker

Sampai disini proses penggunaan database seeder dan Faker di Laravel selesai.

Membuat Controller Kontak
Tahap selanjutnya adalah kita buatkan Controller, ya Controller kita gunakan untuk kita gunakan untuk mengambil permintaan, memparsing permintaan, menginisialisasi, memanggil, mengambil respon dan menrimkan ke view, untuk menciptakan Controller buka jendela Terminal/Command Prompt dan jalankan perintah artisan berikut:

php artisan make:controller KontakController --resource

Nah perintah diatas jika dijalankan akan membuat satu buah file Controller dengan nama “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, dan berisi beberapa fungsi method() seperti tampak berikut ini:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class KontakController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

Menampilkan Data Dari Database Dengan Laravel (Read)
Setelah melalui beberapa langkah diatas, maka langkah selanjutnya adalah membuatkan file view “index.blade.php” yang akan kita gunakan untuk menampilkan data pada view Laravel. Oke, gunakan perintah change directory (cd) dan arahkan project kerja ke folder views dengan perintah berikut:

cd resources/views 
mkdir kontak 
cd kontak 
touch index.blade.php

Seperti tampak pada gambar berikut:

Oke, mari kita buka file view “index.blade.php” pada folder “resources/views/kontak/index.blade.php” dan ketikkan kode seperti berikut:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-12">
            <div class="card">
                <div class="card-header">Daftar Kontak</div>
                @if($message = Session::get('status'))
                <div class="alert alert-success alert-dismissable">
                    <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
                    <p>{{$message}}</p>
                </div>
                @endif
                <div class="card-body">
                    <a href="{{route('kontak.create')}}" class="btn btn-sm btn-success">Tambah</a>
                    <table id="tbl_list" class="table table-striped table-bordered" cellspacing="0" width="100%">
					<thead>
                        <tr>
                            <th>No</th>
                            <th>Nama Lengkap</th>
                            <th>Email</th>
                            <th>Pekerjaan</th>
                            <th>Alamat</th>
                            <th>Aksi</th>
                        </tr>
					</thead>
					<tbody>  
                        <?php
                        $no=1;
                        ?>                  
                        @foreach($kontak as $row)
                        <tr>
                            <td>{{$no++}}</td>
                            <td>{{$row->nama_lengkap}}</td>
                            <td>{{$row->email}}</td>
                            <td>{{$row->pekerjaan}}</td>
                            <td>{{$row->alamat}}</td>
                            <td>
                                <a href="{{route('kontak.edit',$row->id)}}" class="btn btn-sm btn-success">Edit</a>
                                <form action="{{route('kontak.destroy',$row->id)}}" method="POST">
                                    @csrf
                                    @method('DELETE')
                                    <button type="submit" class="btn btn-sm btn-danger">Hapus</button>
                                </form>                                
                            </td>
                        </tr>
                        @endforeach
					</tbody>
                </table>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Selanjutnya kita buka file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, kemudian pada baris method index() kita tambahkan kode berikut:

public function index()
{
$data = array();
$data['kontak'] = DB::table('kontaks')->get();
return view('kontak.index',$data);
}

Selanjutnya coba kita akses apa yang telah kita buat. Masih pada jendela Terminal/ Command Prompt dan aktif pada project Laravel, lalu jalankan perintah artisan berikut:

php artisan serve

Kemudian buka jendela web browser pada desktop anda, dan akses url berikut:

localhost:8000/kontak

Jika berjalan dengan baik maka akan ditampilkan halaman seperti berikut:

menampilkan data di Laravel view
menampilkan data di Laravel view

Sampai disini proses menampilkan data (Read) di Laravel selesai.

Membuat Input Data Ke Database Dengan Laravel
Oke teman-teman setelah kita berhasil menjalankan proses Read atau menampilkan data dari database dengan Laravel, maka selanjutnya akan kita bahas membuat input data ke database dengan Laravel.

Untuk menginputkan data ke database maka kita perlu sebuah form data yang mewakili baris data tabel “kontaks” pada database. Sehingga kita perlu menambahkan satu file view “create.blade.php” pada folder “resources/views/kontak/create.blade.php”.

Buka jendela Terminal/ Command Prompt, masih aktif pada project Laravel ketikkan perintah berikut:

cd resources/views/kontak 
touch create.blade.php

Seperti tampak pada gambar berikut:

Selanjutnya kita buka file view “create.blade.php” yang telah kita buat, dan ketikkan kode berikut kemudian simpan.

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Tambah Data</div>

                <div class="card-body">
                    <form method="POST" action="{{ route('kontak.store') }}">
                        @csrf

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Nama Lengkap</label>

                            <div class="col-md-6">
                                <input id="nama_lengkap" type="text" class="form-control @error('nama_lengkap') is-invalid @enderror" name="nama_lengkap" value="{{ old('nama_lengkap') }}" required autocomplete="nama_lengkap" autofocus>

                                @error('nama_lengkap')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">E-Mail</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Pekerjaan</label>

                            <div class="col-md-6">
                                <input id="pekerjaan" type="text" class="form-control @error('pekerjaan') is-invalid @enderror" name="pekerjaan" value="{{ old('pekerjaan') }}" required autocomplete="pekerjaan" autofocus>

                                @error('pekerjaan')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Alamat</label>

                            <div class="col-md-6">
                                <textarea id="alamat" class="form-control @error('alamat') is-invalid @enderror" name="alamat" value="{{ old('alamat') }}" required autocomplete="alamat" autofocus></textarea>

                                @error('alamat')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>                

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Simpan') }}
                                </button>

                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Kemudian mari kita panggil melalui controller. Buka file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, kemudian ketikkan kode berikut pada method create():

public function create()
{
return view('kontak.create');
}

Dan tambahkan kode berikut pada method strore()

    public function store(Request $request)
    {
        //pertama cek validasi
        $this->validate($request,[
            'nama_lengkap'  => 'required',
            'email'         => 'required',
            'pekerjaan'     => 'required',
            'alamat'        => 'required'
        ]);

        //selanjutnya insert ke database
        DB::table('kontaks')->insert([
            'nama_lengkap'  => $request->nama_lengkap,
            'email'         => $request->email,
            'pekerjaan'     => $request->pekerjaan,
            'alamat'        => $request->alamat
        ]);

        //setelah berhasil insert di redirect
        return redirect('/kontak')->with('status','Data Kontak Berhasil Ditambahkan');
    }

Kemudian buka jendela web browser anda, dan akses url berikut

localhost:8000/kontak/create

Jika berjalan dengan baik, maka akan ditampilkan form input data seperti berikut:

Form input data Laravel
Form input data Laravel

Teman-teman bisa isikan data dan menekan tombol “simpan”, maka data akan dikirim ke database.

Oke, sampai disini proses membuat input data ke database dengan Laravel selesai, selanjutnya kita bahas fungsi edit dan update data di Laravel.

Membuat Edit dan Update Data di Laravel (Update)
Untuk melakukan edit dan update data ke database dengan Laravel maka kita perlu sebuah form data yang berguna untuk menampilkan data record yang kita panggil dari database. Sehingga kita perlu menambahkan satu file view “edit.blade.php” pada folder “resources/views/kontak/edit.blade.php”.

Buka jendela Terminal/ Command Prompt, masih aktif pada project Laravel ketikkan perintah berikut:

cd resources/views/kontak 
touch edit.blade.php

Seperti tampak pada gambar berikut:

Selanjutnya kita buka file view “edit.blade.php” yang telah kita buat, dan ketikkan kode berikut lalu simpan.

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Edit Data</div>

                <div class="card-body">
                    <form method="POST" action="{{route('kontak.update',$kontak->id)}}">
                        @csrf
                        @method('PUT')
                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Nama Lengkap</label>

                            <div class="col-md-6">
                                <input id="nama_lengkap" type="text" class="form-control @error('nama_lengkap') is-invalid @enderror" name="nama_lengkap" value="{{ $kontak->nama_lengkap }}" required autocomplete="nama_lengkap" autofocus>

                                @error('nama_lengkap')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">E-Mail</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $kontak->email }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Pekerjaan</label>

                            <div class="col-md-6">
                                <input id="pekerjaan" type="text" class="form-control @error('pekerjaan') is-invalid @enderror" name="pekerjaan" value="{{ $kontak->pekerjaan }}" required autocomplete="pekerjaan" autofocus>

                                @error('pekerjaan')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">Alamat</label>

                            <div class="col-md-6">
                                <textarea id="alamat" class="form-control @error('alamat') is-invalid @enderror" name="alamat" value="{{ old('alamat') }}" required autocomplete="alamat" autofocus>{{$kontak->alamat}}</textarea>

                                @error('alamat')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>                

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Simpan') }}
                                </button>

                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Selanjutnya buka file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, kemudian ketikkan kode berikut pada method edit():

    public function edit($id)
    {
        //mengambil data dari database
        $kontak = DB::table('kontaks')->where('id',$id)->first();
        
        //passing data ke view edit.blade.php
        return view('kontak.edit',compact('kontak'));
    }

Dan ketikkan kode berikut pada method update():

    public function update(Request $request, $id)
    {
        //mengupdate data
        
        DB::table('kontaks')->where('id',$id)->update([
            'nama_lengkap'  => $request->nama_lengkap,
            'email'         => $request->email,
            'pekerjaan'     => $request->pekerjaan,
            'alamat'        => $request->alamat
        ]);
                
        //redirect setelah berhasil menjalankan update
        return redirect('/kontak')->with('status','Data Berhasil Diupdate');
    }

Oke, sampai disini proses membuat edit dan update data ke database dengan Laravel selesai, selanjutnya kita coba edit salah satu data, jika berjalan dengan baik maka akan tampak seperti berikut.

Form edit Laravel
Form edit Laravel

Membuat Proses Hapus Data di Laravel
Oke teman-teman, dengan sampainya kita pada pembahasan menghapus data di Laravel, itu artinya Tutorial Laravel Lengkap Membuat CRUD di Laravel dengan Route Resource akan segera kita selesaikan.

Untuk membuat proses hapus data di Laravel mari kita buka kembali file controller “KontakController.php” pada folder “app/Http/Controllers/KontakController.php”, kemudian tambhakan kode berikut pada method destroy().

public function destroy($id)
{
//menghapus data
DB::table('kontaks')->where('id',$id)->delete();
//redirect setelah menghapus
return redirect('/kontak')->with('status','Data Berhasil Dihapus');
}

Kemudian masih aktif pada jendela Terminal/ Command Prompt, lalu jalankan perintah berikut:

php artisan serve

Kemudian buka jendela web browser dan akses url berikut:

localhost:8000/kontak

Dan coba teman-teman klik tombol “Hapus” pada salah satu data yang ada, jika berjalan dengan baik maka proses penghapusan data di Laravel berhasil dilakukan seperti tampak berikut.

Melakukan pengahpusan data di Laravel
Melakukan penghapusan data di Laravel

Oke teman-teman akhirnya Tutorial Laravel Lengkap Membuat CRUD di Laravel dengan Route Resource berhasil kita selesaikan. Semoga tutorial ini dapat membantu dan memberi manfaat bagi yang membutuhkan. Terimakasih…

Selesai.