也不知道是不是 Laravel 里的 BUG,调试花费了一个上午......
本来代码是这样写的:
$data=Post::query()->with('users')->whereHas('users',function($query){
$query->where('status',1);
$query->where('type', 1);
})->orderBy('weight','desc')
->get();
以上打印出来的数据竟然查询出 user 表中 status 为 3 的,和 type 为 3 的用户的文章数据,随后我找了一下文档,又换了一个别的写法,如下:
$data=Post::query()->with(['users'=>function($query){
$query->where('status',1);
$query->where('type', 1);
}])->orderBy('weight','desc')
->get();
查询出正常的数据.
我就想问问这两种写法不是一样的吗?
推荐文章: