Php 如果列包含Laravel中的JSON编码数据,如何在数据库中搜索值

Php 如果列包含Laravel中的JSON编码数据,如何在数据库中搜索值,php,mysql,json,laravel,Php,Mysql,Json,Laravel,您好,我想从以下数据中获取供应商服务区域,这些数据基本上是我用JSON编码存储在详细信息列中的数据 我的问题是: $user_details = DB::table('users_details')->where('user_id',11)->get(); 可以在模型中将列定义为数组。大概是这样的: class UserDetail extends Model { . . . protected $casts = [ 'detail

您好,我想从以下数据中获取供应商服务区域,这些数据基本上是我用JSON编码存储在详细信息列中的数据

我的问题是:

$user_details = DB::table('users_details')->where('user_id',11)->get();

可以在模型中将列定义为数组。大概是这样的:

class UserDetail extends Model
{
    .
    .
    .
    protected $casts = [
        'details' => 'array',
    ];
    .
    .
    .
}
$user_details->details['profile_details']['vendor_service_area'];
然后,您可以通过以下方式访问
供应商服务\u区域

class UserDetail extends Model
{
    .
    .
    .
    protected $casts = [
        'details' => 'array',
    ];
    .
    .
    .
}
$user_details->details['profile_details']['vendor_service_area'];

你的数据库版本是什么?如果您使用mysql 8.0>=检查我尝试过但失败,请提供查询@JulienMetal
DB::table('users\u details')->where('user\u id',11)->where('details->profile\u data->vendor\u service\u area',$value)->get()为什么使用$value变量@JulienTralyour的问题是在数据库中搜索json值,所以$value就是searchNow我得到的错误:json_decode()希望参数1是字符串,数组给定。。有解决办法吗?