为什么删除购物车商品的时候不用给 where 传递 user->id???

$user->cartItems()->where([
'product_sku_id' => $productSku->id,
])
上面代码用tosql打印出来的是这样的:
select * from cart_items where cart_items.user_id = ? and cart_items.user_id is not null and (user_id = ? and product_sku_id is null)

里面没有和user表关联的地方,为什么不写成
$user->cartItems()->where([
'user_id' => $user->id,
'product_sku_id' => $productSku->id,
])

这样呢?
是怎样实现对user_id的识别的?

jingzhongwa
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
leo
最佳答案

@jingzhognwa 我通常会把 SQL 打印到日志了,进阶的课程里有介绍:9.7. 减少 SQL 查询(上)

6个月前 评论
讨论数量: 3
leo

关联关系在这里 $user->cartItems()

6个月前 评论

@leo
toSql()方法打印出来的select * from cart_items where cart_items.user_id = ? and cart_items.user_id is not null and (user_id = ? and product_sku_id is null)这个不是最终语句吗?
最终执行的SQL语句怎样获取?经常遇到想查看最终SQL语句的情况,但是都不知道有啥好方法。

6个月前 评论
leo

@jingzhognwa 我通常会把 SQL 打印到日志了,进阶的课程里有介绍:9.7. 减少 SQL 查询(上)

6个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会