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 的时候指定类型呢?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

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

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

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

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

文档

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

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

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

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

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

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

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

5年前 评论

file

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

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