Laravel 如何查询 MySQL 的时候指定类型呢?

由于不知道原因导致了id的类型是chat存的 laravel会把id转成int去查询,我强行指定string也是没生效 有大神指导吗?
这是mysql的日志:

select count(*) as aggregate from `posts` where (`is_show` = 1) and (`user_id` = 12798253142245376) and `posts`.`deleted_at` is null;

laravel 如何查询mysql的时候指定类型呢?

想转成下面的格式

select count(*) as aggregate from `posts` where (`is_show` = 1) and (`user_id` = '12798253142245376') and `posts`.`deleted_at` is null;

laravel 如何查询mysql的时候指定类型呢?
修改器也使用过

Laravel 如何查询 MySQL 的时候指定类型呢?

Laravel 如何查询 MySQL 的时候指定类型呢?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

试一下原生SQL可以的话,直接用 Laravel 执行原生SQL试试看可否。

4年前 评论
charming-xiaoxia (楼主) 4年前

通过属性转换器,让laravel认为这就是string类型。在model中定义$casts:

$casts = [
    'user_id' => 'string'
]

文档

4年前 评论
charming-xiaoxia (楼主) 4年前

试试这个 Illuminate\Database\Eloquent\Model 类里, 你试试在你的 模型类中 重写这个属性
file

4年前 评论
charming-xiaoxia (楼主) 4年前

我自己测试了一下, 貌似这样也不好用.

你可以这样 在查询的时候把你的 user_id 转为 string 类型, 这样是可以的.

4年前 评论
charming-xiaoxia (楼主) 4年前

$this->activityEos->getEosByUserId((string)$id, ['*'])

4年前 评论

file

4年前 评论
ouer1994 4年前
ouer1994 4年前
charming-xiaoxia (作者) (楼主) 4年前
charming-xiaoxia (作者) (楼主) 4年前
ouer1994 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!