Laravel Eloquent Query builder 访问 postgres 复合列属性



我正在使用Laravel 5.8和Postgres 11/Postgis 2.5.2,并且有一个stdraddr列,这是一种复合类型。我可以直接在表上成功运行这样的查询:

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变量包括通配符。有没有人使用过雄辩的复合类型?

我已经能够只运行一个原始查询:DB::select('select * from addresses where (address).house_num LIKE ?', [$houseNum]);,但好奇 Eloquent 是否可以做到这一点?

whereRaw()与原始查询中的代码和绑定一起使用:

Address::whereRaw('(address).house_num LIKE ?', [$houseNum])->get();

最新更新