在 where 子句 laravel 中使用 Json 属性
Posted
技术标签:
【中文标题】在 where 子句 laravel 中使用 Json 属性【英文标题】:Using Json properties in where clause laravel 【发布时间】:2020-09-18 03:54:24 【问题描述】:我有这张表discounts
,我有一个名为rules
的列,它是一个json
,它里面有book
数组,就像这样
餐桌折扣:
Column Rules:
rules:"\"books\":[1,2],others..
现在我想通过 Books 表检查该特定书籍是否包含在任何 discounts->rules->books
中!
我试过的是这样的:
$discount = Discount:: whereJsonContains('rules->books',$this->id)->get();
但这给我返回的是空数组。
【问题讨论】:
希望你能在这里找到答案***.com/questions/51545655/… 【参考方案1】:数据类型必须匹配:
// [1, 2]
Discount::whereJsonContains('rules->books', 1) // Works.
Discount::whereJsonContains('rules->books', '1') // Doesn't work.
// ["1", "2"]
Discount::whereJsonContains('rules->books', '1') // Works.
Discount::whereJsonContains('rules->books', 1) // Doesn't work.
【讨论】:
我认为数据类型匹配你能看到我使用的代码 $this->id 我认为这会像 1 而不是 "1" 对吗? 只有一种方法可以检查!与dd(gettype($variable))
一起死和转储以上是关于在 where 子句 laravel 中使用 Json 属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 switch 语句中使用 laravel 模型运行多个 Where 子句
在 where 子句 laravel 中使用 Json 属性