Matawebsite Promo Lebaran 2022

Menggunakan Join di Laravel Eloquent Queries

date 23 Dec 2021
date Lev Yasin
date 4260
date Web Programming
Menggunakan Join di Laravel Eloquent Queries

Aplikasi Laravel yang sangat bergantung pada interaksi database menggunakan Laravel Eloquent sering menimbulkan masalah kinerja.

Untuk meningkatkan kinerja aplikasi Kita, Kita harus memfaktorkan ulang query Kita dan mengawasi query yang memakan memori dengan menggunakan ORM seperti Laravel Eloquent.

Dalam posting ini, saya akan memandu Kita melalui contoh yang sangat sederhana untuk memfaktorkan ulang query dan meningkatkan waktu respons basis data.

Problem

Perhatikan contoh script di bawah ini, yang menggunakan tabel Produk dan Kategori untuk mengembalikan nama kategori.

$product = Product::where('id', $productId)->first();

$productCategory = Category::where('id', $product->category_id)->pluck('name')->first();

Contoh script di atas cukup sederhana untuk dipahami tetapi menggunakan dua panggilan terpisah ke database. Kueri pertama harus kembali sebelum query kedua dapat ditrigger.

Solusi

Mari kita perbaiki contoh script ini dengan menggabungkan kedua request menjadi satu query.

$productCategory = Product::where('id', $productId)
    ->leftJoin('category', 'product.category', '=', 'category.id')
    ->select('product.id','category.name')->first();

Sekarang, apa yang baru saja kita lakukan di atas?

  • Pertama, kita menargetkan produk berdasarkan productId query yang sama persis dengan yang pertama.
  • Selanjutnya, kita menggabungkan hasil dengan tabel kategori menggunakan category ke kategori produk . Query pertama mengambil model Produk yang memberi kita akses ke atribut kategori.
  • Kita memilih id produk dan nama kategori.
  • Akhirnya, kita menggunakan first()metode, yang memastikan bahwa setelah menemukan satu kategori yang memenuhi persyaratan, itu akan mengembalikan nama kategori secara instan.
Matawebsite Promo
lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Populer

Halo, ada yang bisa kami bantu?
Daftar Sekarang