Laravel with 模型关联 被关联的模型不存在
laravel 模型关联中使用with。场景如下:查询用户的资金流水记录。用流水表 stream 作为主表,user_id 字段于与user 表关联。
Stream::query()->with(['user' => function( $query ) use ($userName) {
$query->where('name', $userName);
}]);
我想查询某个用户的资金流水,但是这样查出来的还是所有的流水,用户名没匹配的则user字段为一个空数组。我想要的是用户名不匹配的流水也不要查不出,只查出于用户名对应的流水记录。希望各位大佬,给出提示和意见,谢谢。
就是 with + whereHas,不过论坛有个帖子说 whereHas 有性能问题
问答:whereHas 有缺陷,会把主表全都遍历一遍