postgresql - Laravel Eloquent 查询生成器访问 postgres 复合列属性

标签 postgresql laravel-5 eloquent laravel-5.8 composite-types

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

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() 与原始查询中的代码和绑定(bind)一起使用:

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

关于postgresql - Laravel Eloquent 查询生成器访问 postgres 复合列属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57080805/

相关文章:

SQL JOIN 查询优化与子查询

php - Laravel Blade 模板未显示更改

php - 如何使用 laravel eloquent 获取加载关系的外键名称

orm - 预加载 Laravel Eloquent 相关模型

php - Eloquent & Carbon 时差

postgresql - 将命令选择到临时表中以便稍后在 PostgreSQL 中执行

sql - 使用 'group by' 和 'join' 时单个查询中的多个选择语句

api - LARAVEL 8 - 没有数据库的 Eloquent 模型从 API 导入数据

postgresql - postgresql 中 regconfig 的可能值是什么?

javascript - Laravel -/js/app.js 未找到 404 错误