我在 Laravel 中使用 vue.js。
我有 3 张 table 。
Article
Location
article_location (pivot table)
如果我想将位置文章转换为 json,以便将其传递给 vue 我该怎么做?
<div class="container">
Location->article //all articles of a location to json
<template id="ln-data">
<ul>
<li v-for="value in list">
@{{ value.name }}
</li>
</ul>
</template>
<script>
Vue.config.debug = true;
Vue.component('data', {
template: '#ln-data',
props:['list'],
created() {
this.list = JSON.parse(this.list);
}
})
new Vue({
el: 'body'
});
</script>
我怎样才能做到这一点?
编辑--
Controller :
$location = location::all();
return view('locationproducts')->with('location',$location);
查看:
<div class="container">
<data list="{{ $location->article()->toJson() }}"></data>
</div>
位置模型:
public function article()
{
return $this->belongsToMany('App\article','article_location');
}
错误:
ErrorException in Macroable.php line 81: Method article does not exist. (View: /home/vagrant/Code/project/resources/views/locationproducts.blade.php)
最佳答案
您可以使用toJson()
方法,将模型转换为JSON,您可以使用toJson
方法。与toArray
一样,toJson
方法是递归的,因此所有属性和关系都将转换为JSON:
$location->articles()->toJson();
希望这有帮助。
关于javascript - Laravel 和 vue.js 值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103929/