Bagaimana untuk Membuat Pertanyaan untuk Alamat E-mel dalam Lajur JSON di Laravel?

Barbara Streisand
Lepaskan: 2024-10-29 00:24:02
asal
799 orang telah melayarinya

How to Query for Email Addresses within a JSON Column in Laravel?

Mengambil Data daripada Lajur JSON dalam Laravel

Masalah:

Dalam aplikasi Laravel, anda mempunyai lajur to daripada jenis JSON dalam jadual e-mel, menyimpan alamat e-mel dalam format berikut:

<code class="JSON">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "[email&#160;protected]"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "[email&#160;protected]"
        }
    }
]</code>
Salin selepas log masuk

Anda perlu mendapatkan semula koleksi semua e-mel yang dihantar ke "[e-mel dilindungi]".

Penyelesaian:

Menggunakan Laravel's Eloquent, anda boleh mencari nilai tertentu dalam lajur JSON menggunakan kaedah whereJsonContains. Walau bagaimanapun, pertanyaan awal anda:

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

tidak mengembalikan padanan kerana pengendali anak panah (->) tidak sah dalam kekunci tatasusunan. Untuk menyelesaikan isu ini, gunakan tatasusunan bersarang sebaliknya:

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

Pertanyaan ini akan mencari alamat e-mel yang sama dengan "[email protected]" dengan betul dan mengembalikan koleksi yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Pertanyaan untuk Alamat E-mel dalam Lajur JSON di Laravel?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!