当我在laravel的json列上使用where时返回空集合

时间:2019-04-22 08:04:18

标签: json laravel collections eloquent where

当我在laravel的{​​{1}}中使用此代码时,

json

$users = App\User::where('meta->Address->addressState','4'); 返回一个空集合

Laravel

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

尝试像使用whereJsonContains

 $users = App\User::whereJsonContains('meta->Address->addressState', '4')->get();

您可以使用

$users = DB::table('users')
           ->where('meta->Address->addressState', '4')
           ->get();

我认为您可能在哪里也无法正常工作

$users = App\User::where('meta->Address->addressState', 4)->get();

$users = App\User::where('meta->Address->addressState', "'4'")->get();

取决于您如何将其存储在数据库中。

答案 1 :(得分:0)

$users = App\User::where('meta->Address->addressState','4');

$data=$users->first();

如果您只希望表中一个地址状态为4的数据,这将起作用;否则,如果您想要多个数据,则可以尝试此操作

$data=$users->get();

答案 2 :(得分:-1)

有时会出现此问题,因为数据库列类型是 text LongText ,而必须有json列

如果使用mariadb,则在运行迁移时,默认情况下,其create json列为longtext