在 laravel 中定义 eloquent 关系时添加额外的约束

Adding additional contraints when defining an eloquent relation in laravel

在模型中定义 eloquent 关系时是否可以使用附加条件?

假设我有:

public function researchtopic() {
    return $this->belongsTo('App\ResearchTopic', 'taggable_id');
}

但我想添加一个额外的 where 条件以在关系中使用第二列。

我如何添加第二个条件:

WHERE taggable_type = "ResearchTopic"

您可以在 belongsTo 参数之后直接使用“where”方法,或者使用 laravel Scope 为关系添加条件:

public function researchtopic() {
    return $this->belongsTo('App\ResearchTopic', 'taggable_id')->where('taggable_type', 'ResearchTopic');
}

https://laravel.com/docs/8.x/eloquent#local-scopes