Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用雄辩的语言查询JSON数组_Php_Laravel 5.3 - Fatal编程技术网

Php 用雄辩的语言查询JSON数组

Php 用雄辩的语言查询JSON数组,php,laravel-5.3,Php,Laravel 5.3,在Laravel5.3中,我在postgres数据库中有一个名为_days的JSON列 我尝试进行如下查询: $day=3 //_days = '[true,false,false,true,true,false,true]' $query->where('_days->'.$day,'true')->first(); 我试图做的是检查json数组的索引3是否为真。 不幸的是,它返回null 在获取雄辩查询的sql时,我发现它生成以下sql: select * from "

在Laravel5.3中,我在postgres数据库中有一个名为_days的JSON列

我尝试进行如下查询:

$day=3
//_days = '[true,false,false,true,true,false,true]'
$query->where('_days->'.$day,'true')->first();
我试图做的是检查json数组的索引3是否为真。 不幸的是,它返回null

在获取雄辩查询的sql时,我发现它生成以下sql:

select * 
from "table" 
where "_days"->>'3' = true
这当然不起作用,因为它试图在不存在的地方找到键“3”

我试图得到的查询是:

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

我如何通过创建一个原始查询并使用eloquent来实现这一点呢?

我想我应该从JSON列中创建一个集合,然后像这样使用索引3

collect(json_解码('[true,false,false,true,true,false,true]'))->get($day)