【问题标题】:Laravel Eloquent Query builder accessing postgres composite column attributesLaravel Eloquent Query builder 访问 postgres 复合列属性
【发布时间】:2019-11-26 13:55:13
【问题描述】:

我正在使用 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 变量包含通配符。有没有人用过 eloquent 的复合类型?

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 2015-06-15
      • 2020-04-26
      • 1970-01-01
      • 2020-02-20
      • 2017-04-29
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      相关资源
      最近更新 更多