Rumah  >  Artikel  >  pangkalan data  >  Cara Mencari E-mel dalam Lajur JSON dengan Laravel's whereJsonContains: Mengapa `->` Tidak Berfungsi dan Apakah Penyelesaiannya?

Cara Mencari E-mel dalam Lajur JSON dengan Laravel's whereJsonContains: Mengapa `->` Tidak Berfungsi dan Apakah Penyelesaiannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 16:02:02899semak imbas

 How to Find Emails in a JSON Column with Laravel's whereJsonContains: Why Doesn't `->` Kerja dan Apakah Penyelesaiannya? 
` Kerja dan Apakah Penyelesaiannya? " />

Mencari E-mel dalam Lajur JSON dengan Laravel

Laravel menyediakan alatan berkuasa untuk bekerja dengan pangkalan data JSON, membenarkan pembangun menyimpan dan mendapatkan semula data kompleks dengan cekap. Satu tugas biasa ialah mencari dalam lajur JSON, yang boleh mencabar kerana sifat data JSON.

Masalah: JsonContains Query Doesn't Match

Dalam contoh yang disediakan, pengguna cuba mendapatkan semula e-mel dengan alamat tertentu daripada jadual dengan lajur JSON Walau bagaimanapun, pertanyaan menggunakan whereJsonContains tidak mengembalikan sebarang hasil Ini kerana subkueri JSON tidak boleh menggunakan operator anak panah ("->". ) dalam konteks tatasusunan.

Penyelesaian: Menggunakan Tatasusunan dalam Pertanyaan

Untuk mencari dalam tatasusunan JSON, Laravel memerlukan penggunaan tatasusunan dalam pertanyaan "whereJsonContains". kaedah mengambil tatasusunan sebagai parameter kedua, dengan setiap elemen mewakili kriteria yang sepadan.

Dalam kes ini, pertanyaan yang betul ialah:

<code class="php">DB::table('emails')
    ->whereJsonContains('to', [['emailAddress' => ['address' => '[email&#160;protected]']]])
    ->get();</code>

Dengan menggunakan tatasusunan dalam subkueri, Laravel boleh mencari e-mel dengan alamat yang ditentukan dengan betul. Ini menangani masalah di mana pengendali anak panah tidak berfungsi dalam tatasusunan dan memastikan bahawa pertanyaan itu sepadan dengan hasil yang diingini.

Pendekatan ini membolehkan pembangun mendapatkan semula data secara berkesan daripada lajur JSON yang kompleks, menjadikannya alat yang berharga untuk berfungsi dengan pangkalan data JSON dalam aplikasi Laravel.

Atas ialah kandungan terperinci Cara Mencari E-mel dalam Lajur JSON dengan Laravel's whereJsonContains: Mengapa `->` Tidak Berfungsi dan Apakah Penyelesaiannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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