簡體   English   中英

雄辯地查詢JSON數組

[英]Query JSON Array with Eloquent

在Laravel 5.3中,我在postgres數據庫中有一個名為_days的JSON列。

我嘗試查詢如下所示:

$day=3
//_days = '[true,false,false,true,true,false,true]'
$query->where('_days->'.$day,'true')->first();

我正在嘗試做的是檢查json數組的索引3是否為true。 不幸的是,它返回null

在獲取雄辯查詢的sql時,我發現它會生成以下SQL:

select * 
from "table" 
where "_days"->>'3' = true

這當然是行不通的,因為它試圖在沒有鍵的地方找到鍵“ 3”。

我想得到的查詢是:

select * 
from "table" 
where "_days"->>3 = true

我如何才能做到這一點,而要反復嘗試創建原始查詢並僅使用雄辯的方法?

我想我會從JSON列中創建一個集合,然后像這樣從索引3開始

collect(json_decode('[true,false,false,true,true,false,true]'))->get($day)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM