如何在 Laravel Eloquent 中获取包含数组的 JSON 对象的值?
Posted
技术标签:
【中文标题】如何在 Laravel Eloquent 中获取包含数组的 JSON 对象的值?【英文标题】:How to get value of JSON object which includes arrays in Laravel Eloquent? 【发布时间】:2020-12-16 09:16:50 【问题描述】:我有一个这样的 JSON 结构:
"dogs":
[
"type": "labradoodle",
"color": "black",
"name" : "Blak"
,
"type": "poodle",
"color": "pink",
"name" : "Colins"
],
"cats": [
"type": "Maine Coon",
"color": "grey",
"name" : "Kitty"
]
如何使用whereJsonContains
按类型获取动物?例如,我需要所有粉红色的贵宾犬?
【问题讨论】:
【参考方案1】:根据你使用的 Laravel 的数据库类型和版本,'whereJsonContains' 的语法和可用的助手会有所不同。您还没有提供任何一条信息,因此您可以在使用 Json 后执行类似的操作。
foreach($animals as $animal => $attribute)
// Check key, value data here for what you want.
见:Laravel Documentation
【讨论】:
是的,对不起。它是 Postgres,也是 Laravel 的最后一个版本。我只是认为我可以使用 whereJsonContains('dogs->type','poodle') 但它不起作用。您的解决方案适合我,但首先我需要获取所有动物,然后才能过滤它。但我想过滤它,然后才得到动物以上是关于如何在 Laravel Eloquent 中获取包含数组的 JSON 对象的值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Laravel 8 Eloquent 中的嵌套关系中获取数据?
如何从 laravel 的 eloquent 集合中获取外键
如何在 Laravel Eloquent ORM 中获取插入的多行数据
如何在 Laravel Eloquent 中获取包含数组的 JSON 对象的值?