###前提・実現したいこと
Laravel5.2 + Vue.js
LaravelのControllerから値を添えたViewをReturnし、その値をVue.jsで取得する。
###該当のソースコード
全て例になります
php
1// Controller 2~~~ 3public function index() : View 4{ 5 // $items取得 6 return View('index', [ 7 'items' => $items 8 ]); 9}
html
1// index.blade.php 2~~~ 3<ul> 4 <li v-for="item in list"> 5 @{{item}} 6 </li> 7</ul>
javascript
1// js(Vue.js) 2Vue.component('hoge', { 3 data() { 4 return { 5 list: [] 6 } 7 } 8}
###試したこと
Controllerのindex()
でデータを返すのではなく、ajaxで取得できるAPIをLaravel側で用意し、Vue.jsのcreated
時にajax経由でAPIを叩いてデータを取得し、Vue.js内のlist
に追加するという方法はできています。
JavaScript
1// js(Vue.js) 2Vue.component('hoge', { 3 data() { 4 return { 5 list: [] 6 } 7 }, 8 created() { 9 this.fetchItems(); 10 }, 11 methods: { 12 fetchItems() { 13 this.$http.get('Laravel側で用意したAPI', items => { 14 this.list = items; 15 }); 16 } 17 } 18}
ですが、Controller経由でViewに渡されたデータをVue.jsで取得する方法があれば、教えていただきたいです。
また、Viewの中でforeach($items as $item)
のようにしないのは、Vue.jsでデータの追加・削除をするためにVue.jsの変数list
で持ちたいためです。
なにかアクションにフックして動くメソッドであれば<button @click="get({{$items}})">
のようにして変数は渡せるのですが、今回はcreated
時にはデータが欲しいためアクションに紐づくメソッドではなく、引数が受け取れません(もし引数を渡せる方法があるのでしたらおそらくそれが回答です!!!)
よろしくお願いいたします。
###補足情報(言語/FW/ツール等のバージョンなど)
PHP 7.0
Laravel 5.2
Vue.js 1.0.25
なにか不足などありましたらお申し付けください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/22 06:41