2017-02-22 12 views
0

Laravel 5.3에서 _days라는 Postgres 데이터베이스에 JSON 열이 있습니다. 내가 뭘하려고하면 JSON 배열의 인덱스 3에 해당하는 경우를 확인하는 것입니다Eloquent를 사용하여 JSON Array를 쿼리

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

: 아래 그림과 같이

나는 쿼리하려고합니다. 불행히도 null을 반환합니다.

내가 다음과 같은 SQL 생성하는 것을 발견 웅변 쿼리의 SQL 얻는 경우 :

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

가 키를 찾기 위해 노력하고 있기 때문에 물론이 작동하지 않습니다를 '3'이 아닌이있는 곳을 .

내가 얻기 위해 노력하고 쿼리는 다음과 같습니다

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

어떻게 원시 쿼리를 만드는 반복이 withought을 달성 할 수있는 단지 설득력을 사용하고 계십니까?

답변

0

나는 내가 JSON 열에서 컬렉션을 만들고 그냥이

collect(json_decode('[true,false,false,true,true,false,true]'))->get($day) 
같은 인덱스 3 일 얻을 것이라고 생각
관련 문제