所以我有养老金类型:
class Type extends Base
{
use RecordStatusActiveTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'pn_pension_type';
/**
* The actual primary key for the model.
*
* @var string
*/
protected $primaryKey = 'pension_type_id';
// Belongs To -----
public function pensionClass() {
return $this->belongsTo('App\Models\Control\PensionClass', 'pension_class_id');
}
// Belongs To Many -----
public function qualifiers()
{
return $this->belongsToMany('App\Models\Pension\Qualifier', 'pn_pension_type_qualifier', 'type_id', 'qualifier_id');
}
}
养老金资格赛:
class Qualifier extends Base
{
use RecordStatusActiveTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'pn_pension_qualifier';
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'rules' => 'array',
];
// Belongs To Many -----
public function types()
{
return $this->belongsToMany('App\Models\Pension\Type', 'pn_pension_type_qualifier', 'qualifier_id', 'type_id');
}
}
他们与正常之间的表有多对多的关系。我想获得一套养老金类型,并在所有这些类型之间找到独特的资格。我可以通过他们的每个资格赛来结束,最终得到一份独特的资格赛名单,但我想知道他们是否是一个" Eloquent"办法。
答案 0 :(得分:1)
使用whereHas
可以根据关系限制结果。关于你想要的,你想要从你的资格赛中查询,如此。
Qualifiers::whereHas('pensions', function($query) use ($pensionIds) {
$query->whereIn('id', $pensionIds);
})->distinct()->get();
添加->distinct()
将为您提供唯一条目。