php - 如何通过 Eloquent ORM 选择 json 之类的键和值数组?

标签 php mysql json laravel eloquent

我有带有 json 字段的 MySQL 表:

Schema::create('meta', function (Blueprint $table) {
       $table->json('details');
});

以及键和值的数组:

$filter = ['key' => 'val', 'id' => 'val'];

如何从数组中选择包含键和值的 json 行?

这不起作用:

Meta::where('details', $filter)->get();
Meta::whereJsonContains('details', $filter)->get();

有什么想法吗?

最佳答案

解决方法:

Meta::where(function($query) use($filter) {
    foreach($filter as $k => $v) {
        $query->orWhere("details->{$k}", $v);
    }
})->get();

但它不适用于深层嵌套数组。

关于php - 如何通过 Eloquent ORM 选择 json 之类的键和值数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56629687/

相关文章:

javascript - 为什么我无法对 json 数据调用 .get/如何将 json 转换为 map

php - 使用 cookie 时注销

php - 编辑mysql数据库中的一行

mysql - 对于将 5 个表连接在一起有点困惑

PHP、PDO 计数在 mysql 上

json - 使用自定义 json 响应进行 Laravel 验证

objective-c - RestKit 0.20 - 动态嵌套对象映射

php - symfony的测试和浏览器有什么区别

php - 字符串日期当前日期/时间?

php - ZF2 ResultSet 和计数性能