Query Database Menggunakan Eloquent ORM Laravel

date 05 Sep 2021
date Sulfikardi
date 54
date Web Programming
Query Database Menggunakan Eloquent ORM Laravel

ORM (Object Relation Mapping) merupakan teknik yang merubah suatu table menjadi sebuah object yang nantinya mudah untuk digunakan. Object yang dibuat memiliki property yang sama dengan field — field yang ada pada table tersebut. ORM tersebut bertugas sebagai penghubung dan sekaligus mempermudah kita dalam membuat aplikasi yang menggunakan database relasional agar menjadikan tugas kita lebih efisien.

Kelebihan - Kelebihan Menggunakan ORM

  1. Terdapat banyak fitur seperti transactions, connection pooling, migrations, seeds, streams, dan lain sebagainya.
     
  2. perintah query memiliki kinerja yang lebih baik, daripada kita menulisnya secara manual.
  3. Kita menulis model data hanya di satu tempat, sehingga lebih mudah untuk update, maintain, dan reuse the code.
  4. Memungkinkan kita memanfaatkan OOP (object oriented programming) dengan baik

Di Laravel sendiri telah disediakan Eloquent ORM untuk mempermudah kita dalam melakukan berbagai macam query ke database, dan membuat pekerjaan kita menjdai lebih mudah karena tidak perlu menuliskan query sql yang panjang untuk memproses data.

Mendefinisikan Model

Untuk menggunakan Eloquent ORM, kita harus mendefinikan model yang nantinya terhubung dengan tabel database kita.

Untuk membuat model, kita dapat menggunakan perintah berikut.

php artisan make:model Models/Product 

Kita juga dapat mengenerate migration database dengan menambahkan --migration atau -m pada peritah artisan tersebut. 

php artisan make:model Models/Product  --migration

 Lalu kita dapat mendifinisikan field dari tabel kita. 

 

public function up()

    {

        Schema::create('products', function (Blueprint $table) {

            $table->id();

            $table->string('product_name', 255);

            $table->string('category', 100);

            $table->double('price');

            $table->integer('qty');

            $table->timestamps();

        });

    }

Selanjutnya kita migrate table kita dengan perinta berikut.

php artisan migrate

 

Harap diperhatikan, jika kita tidak mendefinisikan nama table pada model yang kita buat, Eloquent secara otomatis akan menggunakan tabel dengan nama yang sama (dengan penulisan jamak)  dengan nama model kita. Sebagai contoh, misalkan kita punya model Product, maka secara otomatis Eloquent akan menggunakan tabel dengan nama jamak dari model kita, yaitu products. Namun kita juga dapat mendefinisikan table yang ingin kita gunakan pada model kita. 

Sekarang kita dapat menggunakan model yang telah kita buat untuk melakukan query ke database, kita cukup mengincludekan  model yang kita inginkan  pada controller yang membutuhkan query ke table tersebut.

Menggunakan Model Pada Controller

1. Membuat Product Baru

<?php

 

namespace App\Http\Controllers;

 

use App\Models\Product;

use Illuminate\Http\Request;

 

class ProductController extends Controller

{

    public function store(Request $request)

    {

        // Validate the request...

 

        $product = new Product;

        $product->product_name = $request->product_name;

        $product->category = $request->category;

        $product->price = $request->price;

        $product->qty = $request->qty;

        $product->save();

    }

}

2. Menampilkan Data Product

class ProductController extends Controller

{

    public function show()

    {

        $products = Product::all();

        foreach($products as $product){

            echo $product->product_name;

        }

    }

}

 3. Mengubah Data Product

class ProductController extends Controller

{

   public function update(Request $request)

   {

        Product::where('id', $request->id)

                ->update(['product_name'=> $request->product_name]);

   }

}

4. Menghapus Data Product

class ProductController extends Controller

{

   public function delete($id)

   {

        Product::destroy($id);

   }

}

sul.png

Sulfikardi

Web Design & Web Programming

Halo, saya seorang Web Developer yang terbiasa mengembangkan website menggunakan HTML, CSS, Javascript, PHP, MYSQL, dan Laravel. Disini saya akan membagikan pengalaman saya dalam membangun dan mengembangan website yang responsif dan dinamis

Artikel Terkait

Halo, ada yang bisa kami bantu?