json栏目社交的结构如下:
{"1":{"type":"Facebook","url":"fb.com\/rahul"},"2":{"type":"Twitter","url":"twt.com\/rahul"}}
在模型内部,社交列被强制转换为AsArrayObject::class。
所以,我想要在社交栏目中获得"type" : "Facebook"所在的所有模型。为此,我尝试使用whereJsonContains,如下所示:
public function index()
{
return Creator::whereJsonContains('socials.type','Facebook')->get();
}但是这段代码给出的值是空值。帮我得到所有的模型,其中"type" : "Facebook"存在于社交栏目中。
发布于 2021-06-04 08:50:41
您应该使用->运算符而不是点符号来查询列。参见:https://laravel.com/docs/8.x/queries#json-where-clauses (第一段)。
此外,您的查询语法与您的数据集不匹配,因为您试图访问数据集中的第一级属性,而您的数据集是嵌套的。
https://stackoverflow.com/questions/67808225
复制相似问题