gpt4 book ai didi

php - 如何获取指定所有关系数据的数据

转载 作者:行者123 更新时间:2023-11-29 06:34:41 24 4
gpt4 key购买 nike

我正在使用 Laravel 构建应用程序。

我想要做的是获取搜索条件中指定的所有资格的用户数据,并显示用户列表。

这是我的模型结构。

用户:

id  name
1 John
2 Jack

资质:

id   name
11 A
12 B
13 C

资格_用户:

qualification_id   user_id
11 1
11 2
12 2
13 2

如果设置搜索条件“资格11,12,13”,

约翰只有 11 个 -> 未列出。

jack 拥有列出的所有资格 ->

我想用 Laravel 查询构建器来实现这个,有什么办法吗?

用户.php

public function qualifications()
{
return $this->belongsToMany('App\Qualification');
}

Controller

$query = App\User::query();
// other condition
// ....

// the case listed if one condition is matched
// but, this is not what I want to do
$query->whereHas(
'qualifications',
function ($query) use ($conditions) { //$conditions = [11,12,13]
$query->whereIn('qualifications.id', $qualifications);
}
);

最佳答案

在您的用户模型中:

public function qualifications()
{
return $this->belongsToMany(
Qualification::class,
'qualification_user',
'user_id',
'qualification_id'
);
}

然后在 Controller 中,假设您获得了数组形式的资格 ID:

$query = User::query();
foreach($qualificationIds as $id) {
$query->whereHas('qualifications', function ($q) use ($id) {
$q->where('id', $id);
});
}
$query->get();

关于php - 如何获取指定所有关系数据的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54462604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com