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
- Terdapat banyak fitur seperti transactions, connection pooling, migrations, seeds, streams, dan lain sebagainya.
- perintah query memiliki kinerja yang lebih baik, daripada kita menulisnya secara manual.
- Kita menulis model data hanya di satu tempat, sehingga lebih mudah untuk update, maintain, dan reuse the code.
- 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);
}
}
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