Laravel 5.4:枢轴 table

Laravel 5.4: Pivot table

其实我的问题很简单,但是找不到答案。

我正在使用 Laravel eloquent,我有 3 个 table:

company_types
-id
-name

document_types
-id
-name

和一个枢轴 table 称为:

company_type_document_type
-company_type_id
-document_type_id
-is_default

我已经从我的公司对象中获得 company_type_id,我正在尝试获取 document_typename 像这样:

controller...
$document_type = CompanyTypesDocumentTypes::where('company_type_id',$company->company_type_id)->with('document_type')->where('is_default',true)->first();

view...
{{ $document_type->name }}

我确定问题出在我的模型上,但问题是我真的不明白何时使用 "hasMany" 或 "BelongsToMany" 等... 另外,我认为枢轴的名称table可能有问题,因为下划线

太多了

感谢您的帮助!

因为是多对多,你应该使用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