Cara Upload File Gambar Dengan Laravel 8

Cara Upload File Gambar Dengan Laravel 8

Pada tutorial ini saya akan membahas tentang Cara Upload File Dengan Laravel 8. Jika kita memiliki sebuah aplikasi laravel maka pastinya kita akan membutuhkan suatu fungsi untuk upload file.


Untuk mengikuti tutorial kali ini, kalian harus memiliki sebuah aplikasi project laravel, jika belum memilikinya kalian bisa mengikuti project yang ada di blog Cara Membuat CRUD Pada Laravel 8.


Baik saya akan langsung membuat langkah-langkah dibawah ini dengan project yang sudah saya buat di blog ini.


  1. Silahkan ditambah dulu coloum file pada table product, kemudian silahkan pergi ke file controller [ app\Http\Controllers"ProductController" ] dan cari function store disana sudah ada kodingan dari project sebelumnya yang sudah saya buat. Kita akan menambah sedikit baris koding untuk upload file kita.

    public function store(Request $request)
        {
            // Kode dibawah ini untuk memvalidasi data yang akan di input
            $validate = $request->validate([
                'name' => 'required|max:255|min:3',
                'details' => 'required',
            ]);
    
            // Panggil model Prouct kemudian create semua request yang ada ke dalam table products
    
            Product::create([
                'name' => $request->name,
                'details' => $request->details,
            ]);
    
            // Kembalikan ke halaman index dan berikan pesan success "Data berhasil di tambah"
            return redirect()->route('product.index')->with('success', 'Data berhasil di tambah');
        }

    Kodingan diatas merupakan kodingan dari project yang sudah dibuat, kita akan ganti dengan kodingan dibawah ini :

    // Kode dibawah ini untuk memvalidasi data yang akan di input
            $validate = $request->validate([
                'name' => 'required|max:255|min:3',
                'details' => 'required',
                'file' => 'required|mimes:png,jpg,jpeg,csv,txt,xlx,xls,pdf|max:2048'
            ]);
    
            // Panggil model Prouct kemudian create semua request yang ada ke dalam table products
            $file = $request->file;
            $new_file_name = time() . $file->getClientOriginalName();
            Product::create([
                'name' => $request->name,
                'details' => $request->details,
                'file' => 'uploads/file/' . $new_file_name,
            ]);
    
            $file->move('uploads/file/', $new_file_name);
    
            // Kembalikan ke halaman index dan berikan pesan success "Data berhasil di tambah"
            return redirect()->route('product.index')->with('success', 'Data berhasil di tambah');

  2. Sekarang kita akan ,memodifikasi halaman form upload yang sudah ada dan kodingan dibawah ini adalah kodingan sebelumnya :

    <form action="{{ route('product.store') }}" method="POST" enctype="multipart/form-data">
                        @csrf
                        <div class="form-group">
                            <label>Nama</label>
                            <input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="Nama Produk">
                            @error('name')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <div class="form-group">
                            <label>Details</label>
                            <textarea class="form-control @error('details') is-invalid @enderror" name="details" rows="5" placeholder="Detail produk"></textarea>
                            @error('details')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <button type="submit" class="btn btn-primary float-right">Simpan</button>
                    </form>


    Kita ganti dengan kodingan dibawah ini :

    <form action="{{ route('product.store') }}" method="POST" enctype="multipart/form-data">
                        @csrf
                        <div class="form-group">
                            <label>Nama</label>
                            <input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="Nama Produk">
                            @error('name')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <div class="form-group">
                            <label>File</label>
                            <input type="file" name="file" class="form-control @error('file') is-invalid @enderror">
                            @error('file')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <div class="form-group">
                            <label>Details</label>
                            <textarea class="form-control @error('details') is-invalid @enderror" name="details" rows="5" placeholder="Detail produk"></textarea>
                            @error('details')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <button type="submit" class="btn btn-primary float-right">Simpan</button>
                    </form>

  3. Jika sudah maka hasilnya akan seperti dibawah ini :

    cara-upload-file-gambar-dengan-laravel-8

Untuk tutorial ini kalian bisa pakai untuk upload file & gambar sesuai kebutuhan kalian

Oke kurang lebih Cara Upload File Gambar Dengan Laravel 8 jika kalian masih bingung, silahkan bertanya di kolom komentar bawah. Semoga tutorial ini bermanfaat untuk kita semua.

LARAVEL CRUD #5 - Menghapus data di database dengan Laravel 8

LARAVEL CRUD #5 - Menghapus data di database dengan Laravel 8

Pada tutorial kali ini, saya akan membagikan tutorial tentang cara Menghapus data di database dengan Laravel 8. Tutorial ini merupakan tutorial lanjutan dari tutorial CRUD sebelumnya, jadi saya sarankan untuk teman-teman silahkan ikuti tutorial ini dari part satu.


Untuk tutorial kali ini sangat mudah, jadi silahkah ikuti saja langkah-langkah dibawah ini :


  1.  Membuat tombol hapus pada halaman table list produk, jadi silahkan kalian buka pada resource/views/products/index.blade.php lalu cari tambahkan kodingan seperti dibawah ini pada coloum action.

    <form action="{{ route('product.destroy', $hasil->id) }}" method="POST">
    @csrf
    @method('delete')
    <a href="{{ route('product.edit', $hasil->id) }}" class="btn btn-success btn-sm">Edit</a>
    <button class="btn btn-danger btn-sm">Hapus</button>
    </form>
    atau silahkan copy saja semua kodiangan dibawah ini dan paste gantikan semua kodingan yang ada pada index.blade.php.
    <!doctype html>
    <html lang="en">
    
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
            integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
        <!-- Fonts -->
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;400&display=swap" rel="stylesheet">
    
    
        <style>
            body {
                font-family: 'Montserrat', sans-serif;
            }
    
        </style>
    
        <title>Hello, world!</title>
    </head>
    
    <body>
    
        <div class="container mt-5">
            <h1 class="text-center mb-5">List Produk</h1>
            @if(Session::has('success'))
    
            <div class="alert alert-success alert-dismissible fade show" role="alert">
            {{Session::get('success')}}
            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
            </div>
    
            @endif
            <a href="{{ route('product.create') }}" class="btn btn-primary mb-3">Tambah Produk</a>
            <div class="card shadow-sm">
                <div class="card-body">
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th scope="col">NO</th>
                                <th scope="col">Name</th>
                                <th scope="col">Details</th>
                                <th scope="col">Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- untuk penomoran -->
                            @php
                                $no = 1;
                            @endphp
    
                            <!-- untuk menampilkan data -->
                            @foreach ($product as $hasil)
                            <tr>
                                <th scope="row">{{ $no++ }}</th>
                                <td>{{ $hasil->name }}</td>
                                <td>{{ $hasil->details }}</td>
                                <td>
                                    <form action="{{ route('product.destroy', $hasil->id) }}" method="POST">
                                    @csrf
                                    @method('delete')
                                    <a href="{{ route('product.edit', $hasil->id) }}" class="btn btn-success btn-sm">Edit</a>
                                    <button class="btn btn-danger btn-sm">Hapus</button>
                                    </form>
                                </td>
                            </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    
    
        <!-- Optional JavaScript; choose one of the two! -->
    
        <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
            integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
        </script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous">
        </script>
    
        <!-- Option 2: Separate Popper and Bootstrap JS -->
        <!--
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
        -->
    </body>
    
    </html>
    

    Form tersebut untuk mengirimkan id yang akan dihapus ke ProductController destroy
  2. Nah kemudian untuk langkah ini kita akan membuat kodingan pada function destroy dimana pada fungsi ini yang akan mengeksekusi data yang akan dihapus. Fungsi ini menhapus data sesuai dengan id yang dikirimkan dari form yang kita tambahkan pada index.blade.php lalu di tangkap pada parameter public function destroy($id).

    public function destroy($id)
        {
            $product = Product::find($id);
            $product->delete();
            return back()->with('success', 'Data berhasil di hapus!');
        }
Oke kurang lebih seperti itu untuk Menghapus data di database dengan Laravel 8. Jika kalian masih bingung, silahkan bertanya dikolom komentar dibawah ini :

Demikian tutorial kita untuk Membuat Aplikasi CRUD pada laravel 8 sudah selesai, nantikan tutorial berikut untuk membuat aplikasi CRUD kita ini lebih menarik.

LARAVEL CRUD #4 - Mengedit data di database dengan Laravel 8

LARAVEL CRUD #4 - Mengedit data di database dengan Laravel 8

Dalam tutorial kali ini kita akan bahas tentang Cara Mengedit data di database dengan Laravel 8. Bagi teman-teman yang belum ikuti tutorial lainnya dari part 1, saya sarankan untuk kalian ikuti dulu langkah-langkahnya agar kalian dapat mengikuti part ini dengan baik.


Sebelumnya kita sudah menambah dan menampilkan data dari database dengan laravel. Nah sekarang kita akan masuk ke part selanjutnya, sesuai dengan judul dari postingan ini.


Silahkan teman-teman ikuti langkah-langkah dibawah ini :


  1. Untuk langkah ini kita akan membuat halaman form untuk mengedit data, kita hanya perlu meng-copy halaman Create yang sudah kita buat lalu mengedit isinya sedikit. Untuk kode lengkapnya sudah saya taruh dibawah ini, silahkan copy lalu buat file edit.blade.php pada folder Product lalu paste semua kode dibawah ini ke dalamnya.

    <!doctype html>
    <html lang="en">
    
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
            integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
        <!-- Fonts -->
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;400&display=swap" rel="stylesheet">
    
    
        <style>
            body {
                font-family: 'Montserrat', sans-serif;
            }
    
        </style>
    
        <title>Hello, world!</title>
    </head>
    
    <body>
    
        <div class="container mt-5">
            <h1 class="text-center mb-5">List Produk</h1>
            @if(Session::has('success'))
    
            <div class="alert alert-success alert-dismissible fade show" role="alert">
            {{Session::get('success')}}
            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
            </div>
    
            @endif
            <a href="{{ route('product.create') }}" class="btn btn-primary mb-3">Tambah Produk</a>
            <div class="card shadow-sm">
                <div class="card-body">
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th scope="col">NO</th>
                                <th scope="col">Name</th>
                                <th scope="col">Details</th>
                                <th scope="col">Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- untuk penomoran -->
                            @php
                                $no = 1;
                            @endphp
    
                            <!-- untuk menampilkan data -->
                            @foreach ($product as $hasil)
                            <tr>
                                <th scope="row">{{ $no++ }}</th>
                                <td>{{ $hasil->name }}</td>
                                <td>{{ $hasil->details }}</td>
                                <td>
                                    <a href="{{ route('product.edit', $hasil->id) }}" class="btn btn-success btn-sm">Edit</a>
                                    <button class="btn btn-danger btn-sm">Hapus</button>
                                </td>
                            </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    
    
        <!-- Optional JavaScript; choose one of the two! -->
    
        <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
            integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
        </script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous">
        </script>
    
        <!-- Option 2: Separate Popper and Bootstrap JS -->
        <!--
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
        -->
    </body>
    
    </html>
    

  2. Langkah berikutnya kita akan pergi ke file ProductController lalu kita akan membuat sedikit koding di bagian public function edit untuk mengarahkan route edit ke halaman yang sudah kita buat di langkah satu. Tidak hanya itu kita akan membuat satu variable yang berisi $id yang ditangkap ketika kita klik button edit. Untuk kodenya seperti dibawah ini :

    public function edit($id)
        {
            //disini kita akan mencari id berdasarkan data yang di kirim pada parameter $id lalu kita kirimkan ke halaman edit untuk di panggil 
            $product = Product::findorfail($id);
    
            return view('product.edit', compact('product'));
        }

  3. Disini kita masih di file ProductController hanya saja kita akan pergi bagian public function update, pada bagian inilah kita akan koding untuk mengeksekusi data yang akan kita edit. Silahkan copy kode dibawah ini :

    public function update(Request $request, $id)
        {
            // Kode dibawah ini untuk memvalidasi data yang akan di input
            $validate = $request->validate([
                'name' => 'required|max:255|min:3',
                'details' => 'required',
            ]);
    
            //disini kita menangkap id yang dikirim 
            $product = Product::find($id);
    
            //disini kita akan memanggil data sesuai namanya lalu kita isi dengan request dari file edit
            $product->name = $request->name;
            $product->details = $request->details;
            $product->save();
    
            // Kembalikan ke halaman index dan berikan pesan success "Data berhasil di Edit"
            return redirect()->route('product.index')->with('success', 'Data berhasil di Edit');
        }

  4. Jika sudah ikuti semua langkah-langkah diatas dengan benar maka hasilnya akan seperti gambar dibawah ini :

    mengedit data dari databse dengan laravel
Nah kurang lebih untuk tutorial part 4 tentang Mengedit data di database dengan Laravel 8 seperti ini, jika teman-teman masih bingung lansung bertanya pada kolom komentar dibawah.

Untuk part selanjutnya kita akan membuat fungsi untuk hapus data, jadi ikuti terus langkah-langkah dibawah dengan seksama.

LARAVEL CRUD #3 - Menampilkan data dari database dengan Laravel 8

LARAVEL CRUD #3 - Menampilkan data dari database dengan Laravel 8

Dalam tutorial ini kita saya akan membahas tetang Menampilkan data dari database dengan Laravel 8. Sebelumnya kita sudah Membuat fungsi untuk Menambahkan data ke database dengan Laravel 8, sekarang kita akan menampilkannya di aplikasi web kita.

Untuk tutorial kali ini cukup mudah saja, jadi silahkan ikuti saja langkah-langkah dibawah ini :

  1. Index : Silahkan masuk ke controller yang sudah kita buat yaitu ProductController kemudian pergi ke fungsi public function index & masukan kode seperti dibawah ini :
     public function index()
        {
            $product = Product::latest()->get();
    
            return view('product.index', compact('product'));
        }

    Setelah kita mengarahkan function index ke folder Resource\View\details\index.blade.php. kita akan membuat file html nya. Silahkan kalian copy kode html nya dibawah ini, pada file index.blade.php kita akan memanggil variabel $product yang sudah kita compact pada function-nya dengan menggunakan foreach agar data yang akan ditampilkan berulang sebanyak data yang ada.


    <!doctype html>
    <html lang="en">
    
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
            integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
        <!-- Fonts -->
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;400&display=swap" rel="stylesheet">
    
    
        <style>
            body {
                font-family: 'Montserrat', sans-serif;
            }
    
        </style>
    
        <title>Hello, world!</title>
    </head>
    
    <body>
    
        <div class="container mt-5">
            <h1 class="text-center mb-5">List Produk</h1>
            @if(Session::has('success'))
    
            <div class="alert alert-success alert-dismissible fade show" role="alert">
            {{Session::get('success')}}
            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
            </div>
    
            @endif
            <a href="{{ route('product.create') }}" class="btn btn-primary mb-3">Tambah Produk</a>
            <div class="card shadow-sm">
                <div class="card-body">
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th scope="col">NO</th>
                                <th scope="col">Name</th>
                                <th scope="col">Details</th>
                                <th scope="col">Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- untuk penomoran -->
                            @php
                                $no = 1;
                            @endphp
    
                            <!-- untuk menampilkan data -->
                            @foreach ($product as $hasil)
                            <tr>
                                <th scope="row">{{ $no++ }}</th>
                                <td>{{ $hasil->name }}</td>
                                <td>{{ $hasil->details }}</td>
                                <td>
                                    <a href="" class="btn btn-success btn-sm">Edit</a>
                                    <button class="btn btn-danger btn-sm">Hapus</button>
                                </td>
                            </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    
    
        <!-- Optional JavaScript; choose one of the two! -->
    
        <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
            integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
        </script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous">
        </script>
    
        <!-- Option 2: Separate Popper and Bootstrap JS -->
        <!--
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
        -->
    </body>
    
    </html>
    

    list produk

  2. Jika sudah mengikuti langkah satu dengan benar dan berhasil, maka pada langkah ini kita akan merubah sedikit apa yang sudah kita kerjakan pada function create tutorial part 2 Menambahkan data ke database dengan Laravel 8.

    Kode bawah ini merupakan kode yang sudah kita buat pada tutorial sebelumnya.

    return back()->with('success', 'Data berhasil di tambah');
    Ganti kode diatas seperti kode dibawah ini :
    // Kembalikan ke halaman index dan berikan pesan success "Data berhasil di tambah"
            return redirect()->route('product.index')->with('success', 'Data berhasil di tambah');
    Kode diatas akan mengarakan kita ke halaman index, jika data berhasil di tambah.
  3. Untuk hasil perubahannya akan seperti gambah dibawah ini :


Nah kurang lebih untuk tutorial Menampilkan data dari database dengan Laravel 8, jika teman-teman masih bingung silahkan langsung bertanya pada kolom komentar dibawah.

Silahkan ikuti terus part-part dari tutorial ini untuk belajar membuat crud dengan laravel 8 dengan baik. tutorial selanjutnya kita akan bahas tentang cara Mengedit data di database dengan Laravel 8 jadi jangan lupa pantau terus agar dapat mengikuti tutorial berikutnya.

LARAVEL CRUD #2 - Menambahkan data ke database dengan Laravel 8

LARAVEL CRUD #2 - Menambahkan data ke database dengan Laravel 8

Dalam tutorial ini saya akan membahas tentang Cara Menambahkan data ke database dengan Laravel 8. Dimana postingan ini merupakan lanjutan dari tutorial kita sebelumnya yaitu Membuat CRUD dengan Laravel 8. Untuk kalian yang belum lihat tutorial sebelumnya, silahkan cek terlebih dahulu agar anda dapat mengikuti tutorial ini dengan lebih mudah.


Baca Juga : Cara Upload File Gambar Dengan Laravel 8


Kita akan menambahkan beberapa data ke database menggunakan fungsi yang akan kita buat, berikut data yang nantinya akan kita isi ke database :


No Nama Details
1 Mi Display 34Inch Monitor Gaming terbaik 2020
2 Mi 11 Murah berkualitas
3 Mi Earphones Mi True Wireless Earphones 2S White


Silahkan ikuti langkah-langkah dibawah ini :

  1. Create : Pada langkah ini kita akan mengarahkan fungsi create ke halaman form input data. Sebelumnya kita sudah membuat sebuah Controller dengan nama ProductController yang terdapat pada "app\Http\Controllers\ProductController .php", silahkan masuk dalam controller tersebut. Kemudian pergi ke public function create & masukan kode seperti dibawah ini :

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

    Return view untuk mengembalikan ke tampilan create yang terdapat pada folder Resource\View\details\create.blade.php.


    <!doctype html>
    <html lang="en">
    
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
            integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
        <!-- Fonts -->
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;400&display=swap" rel="stylesheet">
    
    
        <style>
            body {
                font-family: 'Montserrat', sans-serif;
            }
    
        </style>
    
        <title>Hello, world!</title>
    </head>
    
    <body>
    
        <div class="container mt-5">
            <h1 class="text-center mb-5">Tambah Produk</h1>
            @if(Session::has('success'))
            <div class="alert alert-success text-center">
                {{Session::get('success')}}
            </div>
            @endif
            <div class="card shadow-sm">
                <div class="card-body">
                    <form action="{{ route('product.store') }}" method="POST">
                        @csrf
                        <div class="form-group">
                            <label>Nama</label>
                            <input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="Nama Produk">
                            @error('name')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <div class="form-group">
                            <label>Details</label>
                            <textarea class="form-control @error('details') is-invalid @enderror" name="details" rows="5" placeholder="Detail produk"></textarea>
                            @error('details')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>
                        <button type="submit" class="btn btn-primary float-right">Simpan</button>
                    </form>
                </div>
            </div>
        </div>
    
    
        <!-- Optional JavaScript; choose one of the two! -->
    
        <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
            integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
        </script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous">
        </script>
    
        <!-- Option 2: Separate Popper and Bootstrap JS -->
        <!--
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
        -->
    </body>
    
    </html>
    


    Tambah Produk

  2. Store : Kemudian pada langkah berikut inilah kita akan meng-eksekusi data yang di isi dari form input ke dalam database.
    public function store(Request $request)
        {
            // Kode dibawah ini untuk memvalidasi data yang akan di input
            $validate = $request->validate([
                'name' => 'required|max:255|min:3',
                'details' => 'required',
            ]);
    
            // Panggil model Prouct kemudian create semua request yang ada ke dalam table products
            Product::create($request->all());
    
            // Kembalikan ke halaman ini lagi dan berikan pesan success "Data berhasil di tambah"
            return back()->with('success', 'Data berhasil di tambah');
        }

    Success menambahkan data

  3. Data masuk ke table products pada database

    table products

Nah untuk Menambahkan data ke database dengan Laravel 8 sudah selesai, selanjutnya kita akan lenjut ke part berikutnya untuk menampilkan data ke halaman aplikasi web kita.

LARAVEL CRUD #1 - Membuat CRUD dengan Laravel 8

LARAVEL CRUD #1 - Membuat CRUD dengan Laravel 8

 

Dalam tutorial ini saya akan membahas tentang cara membuat crud dengan laravel 8 untuk pemula. Jadi silahkan ikuti langkah-langkah yang sudah saya sediakan dibawah untuk membuat crud pada laravel 8.


Laravel 8 memberikan beberapa fitur baru dan dukungan LTS. Jika anda baru mengenal laravel maka tutorial ini akan sangat membantu anda untuk membuat aplikasi create, read, update, & delete.


  1. Install Laravel : Kita harus install aplikasi laravel versi 8 menggunakan perintah dibawah ini, silahkan buka CMD ( Command Prompt ) atau terminal dan jalankan perintah dibawah ini.

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

    laravelcrud merupakan nama untuk aplikasi yang akan kita install


  2. Konfigurasi Dasabase : Pada langkah ini kita akan konfigurasi database seperti nama database, username, password, dll. Jadi silahkan buka file .env dan isi semua detail seperti contoh dibawah ini.

    DB_CONNECTION = mysql
    DB_HOST = 127.0.0.1
    DB_PORT = 3306
    DB_DATABASE = isi dengan nama databse kalian contoh ( laravelcrud )
    DB_USERNAME = isi dengan username database kalian contoh ( laravelcrud )
    DB_PASSWORD = isi dengan password database kalian contoh ( root ) Jika ada

  3. Create Migration :  Disini kita akan membuat table menggunakan migration dari laravel dengan perintah seperti dibawah ini :

    php artisan make:migration create_products_table --create=products

    Setelah jalankan perintah diatas, maka anda akan menemukan file pada folder "database\migrations\" isi seperti kode dibawah ini untuk membuat table products.

    <?php
      
    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;
      
    class CreateProductsTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('products', function (Blueprint $table) {
                $table->id();
                $table->string('name');
                $table->text('detail');
                $table->timestamps();
            });
        }
      
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('products');
        }
    }

    Sekarang kita jalankan perintah migrate untuk menambahkan table ke database.

    php artisan migrate

  4. Add Controller & Model : Pada langkah ini kita akan membuat Controller & Model. Untuk Controller dengan nama  ProductController dan Model dengan nama Product. Jalankan perintah dibawah ini untuk membuat Controller & Model.

    php artisan make:controller ProductController --resource --model=Product

    Setelah perintah diatas di jalankan, maka kita akan mendapatkan file baru yang terdapat di "app\Http\Controller\ProductController.php". Pada controller ini kita akan mendapatkan tujuh metode secara default, yaitu : index, create, store, view, edit, update, & destroy.


    <?php
    
    namespace App\Http\Controllers;
    
    use App\Models\Product;
    use Illuminate\Http\Request;
    
    class ProductController 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  \App\Models\Product  $product
         * @return \Illuminate\Http\Response
         */
        public function show(Product $product)
        {
            //
        }
    
        /**
         * Show the form for editing the specified resource.
         *
         * @param  \App\Models\Product  $product
         * @return \Illuminate\Http\Response
         */
        public function edit(Product $product)
        {
            //
        }
    
        /**
         * Update the specified resource in storage.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \App\Models\Product  $product
         * @return \Illuminate\Http\Response
         */
        public function update(Request $request, Product $product)
        {
            //
        }
    
        /**
         * Remove the specified resource from storage.
         *
         * @param  \App\Models\Product  $product
         * @return \Illuminate\Http\Response
         */
        public function destroy(Product $product)
        {
            //
        }
    }
    

    Untuk Model kita dapat menemukannya pada "app\Models\Product.php"


    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;
    
    class Product extends Model
    {
        use HasFactory;
    }
    

  5. Add Resource Route : Disini kita akan menambahkan Resource Route untuk aplikasi kita, jadi silahkan buka file "routes\web.php" dan tambahkan route seperti dibawah ini :

    <?php
    
    use App\Http\Controllers\ProductController;
    use Illuminate\Support\Facades\Route;
    
    /*
    |--------------------------------------------------------------------------
    | 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');
    });
    
    // Product
    Route::resource('product', ProductController::class);
    

Nah untuk aplikasi crud laravel kita sudah hampir jadi, kita akan lanjutkan pada part berikut yaitu untuk menambahkan data ke database.