即使 laravel 中不存在数据,关系仍然返回行
Posted
技术标签:
【中文标题】即使 laravel 中不存在数据,关系仍然返回行【英文标题】:Relation still returning row even if data not exist in laravel 【发布时间】:2021-10-14 22:37:41 【问题描述】:我有这个问题:
$data=Booking::whereHas('service.user', function($query) use ($id)
$query->where('user_id', $id);
)->get();
这里 service.user 与用户相关,我只想从预订表中返回那些在 service.user 关系中存在 user_id 的记录,但是使用此关系,当 user_id 不存在于服务中时,我仍然从预订表中获取记录.用户关系。任何人都可以提出一些解决方案。谢谢
【问题讨论】:
能否提供模型上下文?services
表也有可能有一个字段名称user_id
,框架可能会与users
表中的id
字段混淆。
【参考方案1】:
你可以试试这个吗?我想我可能是错的,但为什么不试一试(-:
$data = Booking::whereHas('service', function ($query) use ($id)
$query->whereHas('user', function ($query) use ($id)
$query->where('user_id', $id);
);
)->get();
【讨论】:
以上是关于即使 laravel 中不存在数据,关系仍然返回行的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 会话数据在注销/登录后仍然存在,即使对于不同的用户也是如此
即使元素在 Selenium Python 中不存在,如果元素存在的条件仍然继续
即使 sql 查询不应该返回任何记录,JUnit 测试仍然通过