2016-01-30 45 views
1

我在Laravel中使用vue.js。Laravel&vue.js对数组的值

我有3张桌子。

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> 

我该怎么做?

编辑 -

控制器:

$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)

回答

1

您可以使用toJson()方法将模型转换为JSON,您可以使用toJson方法。像toArray,该toJson方法是递归的,所以所有属性和关系将被转换为JSON:

$location->articles()->toJson(); 

希望这有助于。

+0

感谢您的回复。请参阅我的编辑。任何想法为什么这个错误出现? – Jamie

+0

不客气,google了一下我可以看到这个问题是相关的形式,但我找不到任何快速的答案,我建议增加另一个问题具体到这个问题与明确的描述和更具体的代码。 –

+0

奥克,我会感谢。 – Jamie