当我在laravel
中使用此代码时,json
在哪里
$users = App\User::where('meta->Address->addressState','4');
Laravel
返回一个空集合
Illuminate\Database\Eloquent\Collection {#3909
all: [],
}
我怎么能解决这个问题?
有时会出现此问题,因为数据库列类型是文本或LongText,而必须有json列
如果在运行迁移时使用mariadb,则默认创建json列作为longtext
尝试使用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();
取决于您如何将其存储在数据库中。
$users = App\User::where('meta->Address->addressState','4');
$data=$users->first();
如果您只想要一个具有addressState为4的表的数据,如果您想要多个数据可以尝试,那么这将有效
$data=$users->get();