laravel - Laravel Eloquent:whereHas 涉及多个表的关系
问题描述
我正在做一个 Laravel 项目。我正在使用 Eloquent 从数据库中查询数据。
我有以下型号
捐赠.php
class Donation extends Model
{
public function donator()
{
return $this->belongsTo(User::class);
}
}
用户.php
class User extends Model
{
public function charities()
{
return $this->belongsToMany(Charity::class);
}
}
慈善机构.php
class Charity extends Model
{
public function donators()
{
return $this->belongsToMany(User::class);
}
}
我正在写一个关于捐赠模型类的查询,我正在尝试查询这样的内容。查询只是抽象。
Donation::whereHas('donator.charities', function($query) {
$query->whereIn('charities.id', [ 1,2,3,4 ])
})
正如您在 whereHas 中看到的,我将 where 子句应用于捐赠者的慈善机构。有可能这样做吗?我怎样才能做到这一点?
解决方案
我希望这将是您问题的答案。
Donation::whereHas('donator',function($query){
$query->whereHas('charities',function($query){
$query->whereIn('id',[1,2,3,4]);
})
})->get();
推荐阅读
- python - 无法在我的 Django 博客上添加评论
- javascript - 本地字体与在线字体?
- java - 如何使用检测在 Java 代码中设置断点?
- javascript - 何时调用 JavaScript 切换函数?
- javascript - 使用命令处理程序的 Discord.js 冷却时间剩余
- python - 初始化与 Telethon 的连接时出现问题
- python-3.x - IntelliJ Pycharm 插件:将变量移动到类中
- javascript - Java中的无效函数结果
- windows - “远程计算机是 AAD”但“登录尝试失败”
- elasticsearch - 有没有办法更改 elasticsearch 7 的 /etc/default/elasticsearch 文件?