WhereJsonContains in Laravel

WhereJsonContains in Laravel. Ví dụ chúng ta có cột "note"  trong database, là kiểu json, dạng mảng. Có nghĩa là dữ liệu là mảng, chuyển sang json lưu vào database.

khi đó chúng ta có thể dùng whereJsonContains check các cặp key/value của nó

use App\Models\User;

Route::get('/', function () {
    /*
     //column note type (json) in database
     "note" => "[{"name": "PHP"}, {"name": "Laravel"}, {"name": "Next.js"}, {"name": "Vue.js"}, {"name": "React"}]"
    */

    /*
    //you can $request->note, after then json to array
    $notes = $request->note
    $notes = json_decode($note, true);
    */
    $notes = ["Laravel","Next.js"];

    $users = App\Models\User::query();
        if(count($notes)>0){
            foreach($notes as $position){
                $users->orWhereJsonContains('note', ['name' => $position]);
            }
        }

    //or
    $users2 = User::when($notes , function($query) use ($notes) {
            $query->where(function ($query) use ($notes) {
                foreach($notes as $position) {
                    $query->orWhereJsonContains('note', ['name' => $position]);
                }
            });
        });

    //Dump it
   dd($users->get()->toArray(),$users2->get()->toArray());
    //return view('welcome');
});

 

Bài Viết Liên Quan

x

Xin chào! Hãy ủng hộ chúng tôi bằng cách nhấp vào quảng cáo trên trang web. Việc này giúp chúng tôi có kinh phí để duy trì và phát triển website ngày một tốt hơn. (Hello! Please support us by clicking on the ads on this site. Your clicks provide us with the funds needed to maintain and improve the website continuously.)

Ngoài ra, hãy đăng ký kênh YouTube của chúng tôi để không bỏ lỡ những nội dung hữu ích! (Also, subscribe to our YouTube channel to stay updated with valuable content!)

Đăng Ký