2017-11-28 4 views
0

でクエリーのJSON(アレイ)の列私は、次のコードのスナップを行いたい:laravel

のPostgreSQLを使用して
DB::table('tests')->whereIn('words', ['school','running'])->get(); 

と言葉の種類は、次のように、言葉のテーブルデータでjsonb です。

['someword','someword2', .... , 'somewordn'] 

は、生のクエリでは、私は次のように行うことができます。

SELECT * FROM tests WHERE words ?| array['school','running]; 

私はlaravel Eloquentを使ってこれを行いたいと思います。

+0

あなたが持っている正確な問題を提供することができます! –

+0

私の質問を編集しました、@ Kuncham Vasu! – Tetote

答えて

0

Eloquentはクエリでjsonbをサポートしていません。この問題を回避する最善の方法は、whereRaw()メソッドを使用することです。しかし、この方法では、が引数を表す制限された文字であるPDOを使用します。

幸いにも、すべての作業は、あなたが?|jsonb_exists_any()と同じで、これはあなたのクエリで使用できるものであることを意味しているここに記載されているhttp://sqlfiddle.com/#!17/9eecb/6498チェックすることができる機能、ちょうどショートカットです。

はそれをテストしていませんが、このような作業をする必要があります:

DB::table('tests')->whereRaw("jsonb_exists_any(words, ['school','running'])")->get();