如果您想查找附件满足特定约束的用户,请使用whereHas方法
UserModel::whereHas('attachments', function ($attachmentQuery) {
$attachmentQuery->where('level', 'profile_level');
})->get();
Run Code Online (Sandbox Code Playgroud)
如果你想从已经查询的模型中获取特定的附件然后写
$userModel->attachments()->where('level', 'profile_level')->get();
Run Code Online (Sandbox Code Playgroud)
一次查询不可能同时查询 UserModel 和 AttachementModel,它必须至少是两个查询。即使UserModel::with('attachments')->get();是返回带有所有附件的用户的fancy ,也会在内部执行两个查询。
编辑:
我注意到您可以在方法中定义关系约束with
UserModel::with(['attachments' => function ($attachmentQuery) {
$attachmentQuery->where('level', 'profile_level');
}])->get();
Run Code Online (Sandbox Code Playgroud)
因此,如果您想找到附件满足特定约束的用户并急切加载该附件,那么您可以这样做
$queryAttachments = function ($attachmentQuery) {
$attachmentQuery->where('level', 'profile_level');
};
UserModel::whereHas('attachments', $queryAttachments)
->with(['attachments' => $queryAttachments])->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3257 次 |
| 最近记录: |