json - laravel whereJson 包含在 laravel 审计中
问题描述
在新值列中auditable_id=2239
,我是否正在获取正确的new_values
数据{"video_status_ids":"[4,10]"}
在修补程序中
App\Video::find(2239)->audits()->get()
集合包含
OwenIt\Auditing\Models\Audit {#3140
id: 322113,
user_type: "App\User",
user_id: 3,
event: "updated",
auditable_type: "App\Video",
auditable_id: 2239,
old_values: "{"video_status_ids":"[4, 8]"}",
new_values: "{"video_status_ids":"[4,10]"}",
url: "http://example.com?",
ip_address: "ipaddr",
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.
36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36",
tags: null,
created_at: "2019-03-04 13:30:57",
updated_at: "2019-03-04 13:30:57",
},
但对于
1.App\Video::find(2239)->audits()->whereJsonContains('new_values->video_status_ids', 10)->get()
和
2.App\Video::find(2239)->audits()->where('new_values->video_status_id', 10)->get()
和
3.App\Video::find(2239)->audits()->where('new_values->video_status_ids', "[10]")->get()
我正进入(状态
=> Illuminate\Database\Eloquent\Collection {#138
all: [],
}
但我应该得到上述记录。
解决方法
App\Video::find(2239)->audits()->where('new_values', 'like','\{"video_status_ids"%10%')->get()
和
App\Video::find(2239)->audits()->where('new_values->video_status_ids', 'like',"%10%")->get();
但如果有 101、100 等,这将不起作用。仅针对我的要求,就可以了。
解决方案
推荐阅读
- c++ - 向传递给函数的函数指针添加标准例程?
- flask - 如何在 API 中创建发布请求所需的字段?
- php - 如何控制不同页面上的 html/php 会话超时
- xcode - 排序字典上的 ForEach:Xcode 使用 if 块构建
- python - 如何改进我的代码以找到递增和递减序列
- c# - 覆盖 MenuItem ControlTemplate 可防止在单击项目时关闭 ContextMenu
- r - seq.int(from, to, length.out = n) 中的错误:'to' 必须是有限数 #81
- javascript - 滚动时脚本使横幅消失的问题
- c# - 正确处理字节数组编码 Utf-8
- c++ - 概念正则与概念半正则