【发布时间】:2021-01-23 15:31:17
【问题描述】:
我使用 Laravel 制作了多对多关系表,并且我使用前端作为 vuejs。我想将我所有相关的工作类别 ID 获取到特定的人。我的模型看起来像这样。
在我的 Person 模式关系中看起来像这样。
public function interests()
{
return $this->belongsToMany(SubCategory::class, 'basic_detail_sub_category', 'basic_detail_id', 'sub_category_id')->withTimestamps();
}
我的工作类别模式看起来像这样
public function basics()
{
return $this->belongsToMany(BasicDetails::class, 'basic_detail_sub_category', 'sub_category_id', 'basic_detail_id')->withTimestamps();
}
我想通过我的人员模式获取所有相关的工作 ID。
public function getBasicDetails()
{
return BasicDetails::with(['interests' => function($query) {
$query->select('sub_category_id')->get();
}])->latest()->get();
}
这些都是我的后端人员。我使用 v-autocomplete 组件来查看我所有的工作类别。
<v-autocomplete
v-model="basicDetails.interests"
:disabled="isUpdating"
:items="interestSub"
outlined
item-text="sub_category"
item-value="id"
multiple
>
<template v-slot:selection="data">
<v-chip
v-bind="data.attrs"
:input-value="data.selected"
close
@click="data.select"
@click:close="remove(data.item)"
>
{{ data.item.sub_category }}
</v-chip>
</template>
<template v-slot:item="data">
<template v-if="typeof data.item !== 'object'">
<v-list-item-content
v-text="data.item"
></v-list-item-content>
</template>
<template v-else>
<v-list-item-content>
<v-list-item-title
v-html="data.item.sub_category"
></v-list-item-title>
</v-list-item-content>
</template>
</template>
</v-autocomplete>
我需要从工作类别表中获取所有相关 ID 作为数组,而不是像表中的所有行。我怎样才能做到这一点?只是我想获取所有相关的工作类别并将其显示在我的自动完成中。我使用 vuex getter 来获取我的详细信息。
interestSub(state) {
return state.interestSub;
},
兴趣数组数据显示如下。
interests: [
{
pivot: Object,
sub_category_id: 2
},
{
pivot: Object,
sub_category_id: 1
},
]
但我想得到这样的兴趣数组。
interests: [1, 2];
【问题讨论】: