实际上,我的问题非常简单,但我找不到任何答案。
我正在使用Laravel雄辩,我有3张桌子:
company_types
-id
-name
document_types
-id
-name
和一个名为:
的数据透视表company_type_document_type
-company_type_id
-document_type_id
-is_default
我已经拥有公司对象的company_type_id
,而我正试图获取name
的{{1}}
像这样:
document_type
我确定问题出在我的模型上,但问题是我真的不明白何时使用“hasMany”或“BelongsToMany”等... 另外,我认为数据透视表的名称可能存在问题,因为下划线太多
谢谢你的帮助!
答案 0 :(得分:2)
由于它是多对多的,因此您应该使用wherePivot()
方法。
定义关系:
public function defaultDocumentTypes()
{
return $this->belongsToMany(DocumentType::class)->wherePivot('is_default', 1);
}
然后您可以使用以下关系获取文档类型:
$companyType = CompanyType::find($companyTypeId);
$documentTypes = $companyType->defaultDocumentTypes()->get();
在视图中显示它们:
@foreach ($documentTypes as $documentType)
{{ $documentType->name }}
@endforeach