Laravel Eloquent 查询生成器访问 postgres 复合列属性
Laravel Eloquent Query builder accessing postgres composite column attributes
我正在使用 Laravel 5.8 和 Postgres 11 / Postgis 2.5.2,并且有一个 stdraddr
列,它是一种复合类型。我可以直接在 table:
上成功 运行 这样的查询
select * from addresses where (address).house_num like '%2840%'
访问地址列中的列。
我还没有通过以下尝试将此查询转换为 Eloquent:
Address::where('address.house_num', 'LIKE', $houseNum)->get();
Address::where('(address).house_num', 'LIKE', $houseNum)->get();
Address::where('address[house_num]', 'LIKE', $houseNum)->get();
Address::where('address', 'LIKE', $houseNum)->get();
Address::where('house_num', 'LIKE', $houseNum)->get();
Address::whereRaw("(address).house_num LIKE {$houseNum}")->get();
和其他一些抛出 SQLSTATE 异常的。 $houseNum 变量包含通配符。有人用过 eloquent 的复合类型吗?
我已经能够 运行 一个原始查询:\DB::select('select * from addresses where (address).house_num LIKE ?', [$houseNum]);
,但很好奇 Eloquent 是否可以做到这一点?
将 whereRaw()
与原始查询中的代码和绑定一起使用:
Address::whereRaw('(address).house_num LIKE ?', [$houseNum])->get();
我正在使用 Laravel 5.8 和 Postgres 11 / Postgis 2.5.2,并且有一个 stdraddr
列,它是一种复合类型。我可以直接在 table:
select * from addresses where (address).house_num like '%2840%'
访问地址列中的列。
我还没有通过以下尝试将此查询转换为 Eloquent:
Address::where('address.house_num', 'LIKE', $houseNum)->get();
Address::where('(address).house_num', 'LIKE', $houseNum)->get();
Address::where('address[house_num]', 'LIKE', $houseNum)->get();
Address::where('address', 'LIKE', $houseNum)->get();
Address::where('house_num', 'LIKE', $houseNum)->get();
Address::whereRaw("(address).house_num LIKE {$houseNum}")->get();
和其他一些抛出 SQLSTATE 异常的。 $houseNum 变量包含通配符。有人用过 eloquent 的复合类型吗?
我已经能够 运行 一个原始查询:\DB::select('select * from addresses where (address).house_num LIKE ?', [$houseNum]);
,但很好奇 Eloquent 是否可以做到这一点?
将 whereRaw()
与原始查询中的代码和绑定一起使用:
Address::whereRaw('(address).house_num LIKE ?', [$houseNum])->get();