Rumah > pangkalan data > tutorial mysql > Petua Laravel: whereHas atau whereRelation?

Petua Laravel: whereHas atau whereRelation?

Barbara Streisand
Lepaskan: 2025-01-17 12:02:12
asal
117 orang telah melayarinya

Selami Laravel Eloquent: Meneroka whereRelation dan Aplikasi Praktikalnya

Siaran ini meneroka ORM Fasih Laravel, memfokuskan pada kaedah whereRelation dan membandingkannya dengan kaedah whereHas yang lebih lama. Kami akan mengkaji kekuatan dan batasannya, membimbing anda ke arah penggunaan yang optimum.

Senario: Mendapatkan semula pengguna dengan pesanan yang lengkap. Sebelum Laravel 8, whereHas ialah standard untuk menanyakan lajur jadual berkaitan. Laravel 8 memperkenalkan whereRelation, menawarkan sintaks yang lebih ringkas.

Laravel Tip: whereHas or whereRelation?

Sintaks yang dipertingkatkan tidak dapat dinafikan lebih bersih!

Prestasi dan Had: Salah tanggapan yang biasa ialah whereRelation mengatasi whereHas. Walau bagaimanapun, analisis mendedahkan bahawa kedua-duanya menjana pertanyaan SQL yang sama:

whereHas Pertanyaan:

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
Salin selepas log masuk
Salin selepas log masuk

whereRelation Pertanyaan:

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
Salin selepas log masuk
Salin selepas log masuk

Perbezaan utama terletak pada kefungsian. whereRelation terhad kepada syarat tunggal pada jadual yang berkaitan, manakala whereHas menyokong berbilang syarat dalam satu subkueri. whereRelation akan mencipta subkueri berasingan untuk setiap syarat, menjadikannya tidak cekap untuk berbilang kriteria.

Laravel Tip: whereHas or whereRelation?

Memilih kaedah Eloquent yang betul adalah penting untuk kebolehbacaan dan kecekapan kod. Pertimbangkan kerumitan pertanyaan anda sebelum memilih whereHas atau whereRelation. Selamat mengekod! ?

Atas ialah kandungan terperinci Petua Laravel: whereHas atau whereRelation?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan