为了账号安全,请及时绑定邮箱和手机立即绑定

我的 whereJsonContains 不起作用(Laravel 5.8)

我的 whereJsonContains 不起作用(Laravel 5.8)

PHP
白衣染霜花 2022-07-22 10:09:50
我的 laravel 查询有问题。现在我使用这样的查询:$courses = Course::whereJsonContains('schedule->day', 1)->get();它不起作用。我正在使用 postgreSql 9.6,我的数据库和原始查询看起来像这样http://sqlfiddle.com/#!17/88fd2/1/0我想选择一天有时间表的班级= 1
查看完整描述

4 回答

?
ibeautiful

TA贡献1993条经验 获得超6个赞

如果将列定义为schedule->day,MySQL 假定这是一个整数数组。在您的情况下,它是一个对象数组,因此您必须定位父数组并在第二个参数中添加您要查找的属性名称。

像这样:

$courses = Course::whereJsonContains('schedule', ['day' => 1])->get();


查看完整回答
反对 回复 2022-07-22
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

我解决了

$courses = Course::whereJsonContains('schedule', [['day' => '1']])->get();


查看完整回答
反对 回复 2022-07-22
?
HUWWW

TA贡献1874条经验 获得超12个赞

如果您正在查询您不需要使用的值whereJsonContains,只需使用常规where查询,例如:

$courses = Course::where('schedule->day', 1)->get();`

如果要检查dayJson 中是否存在,请使用whereJsonLength例如:

$courses = Course::whereJsonLength('schedule->day', '>', 0)->get();


查看完整回答
反对 回复 2022-07-22
?
莫回无

TA贡献1865条经验 获得超7个赞

我解决了

$products=ProductShop::active()
          ->whereJsonContains('tag', [['value' => "tampa"]])->get();


查看完整回答
反对 回复 2022-07-22
  • 4 回答
  • 0 关注
  • 310 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号