Я использую vue.js в Laravel. Это моя структура таблицы:
Article
id
name
description
Location
id
placearticle_location (pivot table)
--fields--
id
article_id (foreign key)
location_id (foreign key)
Я хотел бы преобразовать это в JSON:
article.place
article.description
location.place
Какой правильный способ сделать это с Eloquent?
<div class="container">
<div class="container">
<data list="{{ $location->artikel()->toJson() //<-something like this? }}"></data>
</div>
<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>
Мой контроллер:
$location = location::all(); return view('locationproducts')->with('location',$location);
модель местоположения:
public function article()
{
return $this->belongsToMany('App\article','article_location');
}
Ошибка:
ErrorException в строке Macroable.php 81: метод статьи не
существовать. (Посмотреть:
/home/vagrant/Code/project/resources/views/locationproducts.blade.php)
Вы можете найти API класса Model по этому адресу: https://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html Вы можете видеть, что функция toJson уже существует.
У вас есть опечатка в html, которую вы написали «$ location-> artikel () -> toJson ()» вместо «$ location-> article () -> toJson ()», возможно, это ваша проблема.
Других решений пока нет …