gpt4 book ai didi

vue.js - 如何在 laravel 和 vue.js 中显示用户名而不是 id(外键)

转载 作者:行者123 更新时间:2023-12-02 00:18:26 25 4
gpt4 key购买 nike

我想在 Vue.js 的表列表中显示用户名而不是 supervisor_id。这是一对多的关系。 supervisor_id 是用户表中的外键。

///这是 vue.js 中的 View 。我想将 work.supervisor_id 更改为类似 work.user.name 的内容,但它不起作用。

<tr v-for="(work,index) in works.data" :key="work.work_id">
<td>{{index+1}}</td>
<td>{{work.work_name}}</td>
<td>{{work.supervisor_id}}</td>
<td>{{work.payment}}</td>
<td>{{work.created_at | myDate}}</td>
<td>{{work.end_date}}</td>
<td>{{work.worker_id}}</td>
<td>

///这是我在 vue.js 中的脚本

<script>
export default {
data() {
return{
editmode: false,
works:{},
index:1,
users:{},
form: new Form({
work_id:'',
work_name:'',
description:'',
payment:'',
location:'',
end_date:'',
worker_id:'',
application_status:'New',
supervisor_id:'',
})
}
},

methods:{

getResults(page = 1) {
axios.get('api/work?page=' + page)
.then(response => {
this.works = response.data;
});
},


loadWork(){
if(this.$gate.isClerk()){
// axios.get('api/work').then(({data})=>(this.works = data));
axios.get('api/work').then(response => (this.works = response.data));
}
},

///这是我的工作 Controller

public function index()
{
return Work::latest()->paginate(10);
}

the data in the vue.js devtool

最佳答案

为此,它需要在 Work 模型上建立关系,该关系返回您需要的 supervisor 记录。

这将允许您获取主管(或用户,具体取决于关系)的名称。

工作模型(app\Work.php):

public function supervisor()
{
return $this->hasOne(User::class, 'supervisor_id');
}

现在在您的 Controller 中,您可以使用 ->with() Eloquent 方法来预加载关系:

public function index()
{
return Work::with('supervisor')->latest()->paginate(10);
}

您现在应该可以使用以下方式在 vue 中访问主管名称:

{{ work.supervisor.name }}

希望对您有所帮助。

关于vue.js - 如何在 laravel 和 vue.js 中显示用户名而不是 id(外键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com