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

问题描述 投票:2回答:3

当我在laravel中使用此代码时,json在哪里

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

Laravel返回一个空集合

Illuminate\Database\Eloquent\Collection {#3909
   all: [],
}

我怎么能解决这个问题?

json laravel collections eloquent where
3个回答
-1
投票

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

如果在运行迁移时使用mariadb,则默认创建json列作为longtext


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();

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


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

$data=$users->first();

如果您只想要一个具有addressState为4的表的数据,如果您想要多个数据可以尝试,那么这将有效

$data=$users->get();
© www.soinside.com 2019 - 2024. All rights reserved.