2016-08-25 3 views
14

Ну я играю с новым Laravel 5.3 и vue.js и я хочу сделать GET вызов некоторых пользователей я есть в моей БДLaravel не определен

Im используя компоненты кстати.

Это мой app.js

require('./bootstrap'); 

Vue.component('example', require('./components/UserComponents/User.vue')); 

const app = new Vue({ 

    el: 'body', 

}); 

Это мой компонент User.vue я покинул шаблон HTML из за сообщение размера причине я могу разместить его если есть необходимость

<script> 

    export default{ 

     data : function() { 
      return { 
       users : '' 
      } 
     }, 

     methods: { 


      fetchUser: function() { 

       var vm = this; 

       vm.$http.get('user/', function (data) { 
        vm.$set('users', data) 
       }) 

      } 
     }, 
     ready() { 

      this.fetchUser(); 
     }, 

    } 
</script> 

Im получая 2 ошибки в консоли

vue-resource.common.js?d39b:27 0ReferenceError: Laravel is not defined(…) 

(program):29 Uncaught (in promise) ReferenceError: Laravel is not defined(…) 

это мой пакет.json, как вы можете видеть, у меня есть все отпечатки для этого, чтобы wo rk vue и vue

{ 
    "private": true, 
    "scripts": { 
    "prod": "gulp --production", 
    "dev": "gulp watch" 
    }, 
    "devDependencies": { 
    "bootstrap-sass": "^3.3.7", 
    "gulp": "^3.9.1", 
    "jquery": "^3.1.0", 
    "laravel-elixir": "^6.0.0-9", 
    "laravel-elixir-vue": "^0.1.4", 
    "laravel-elixir-webpack-official": "^1.0.2", 
    "lodash": "^4.14.0", 
    "vue": "^1.0.26", 
    "vue-resource": "^0.9.3" 
    } 
} 

Надеюсь, кто-то может помочь мне здесь. Спасибо

+0

Вы можете показать свой '/ bootstrap.js'.. Где-то переменная/константа 'Laravel' используется без ее инициализации. –

+0

@NEOJPK, не могли бы вы разместить свой HTML-шаблон? Я тоже играю с этим. Так что это поможет мне учиться. –

+0

У меня больше нет этого парня. Но я думаю, что они исправили это. Пойдите и возьмите последнюю версию от композитора. И затем npm install – NEOJPK

ответ

37

Попробуйте поставить это на лезвии, как вы можете видеть, вставляются по умолчанию app.blade на Laravel 5.3

<script> 
    window.Laravel = <?php echo json_encode([ 
     'csrfToken' => csrf_token(), 
    ]); ?> 
</script> 
+1

У меня была аналогичная проблема, и я решил так! Благодаря! – Mistre83

37

Или для более чистого формата:

<script> 
    window.Laravel = { csrfToken: '{{ csrf_token() }}' }; 
</script> 

Does То же самое, что и ответ Рокко.

+0

Не могли бы вы добавить более подробную информацию к этому ответу, почему мы должны это делать? – Naeem

+1

Это просто чище. –

+0

Я слышал, что laravel нуждается в этом, чтобы обеспечить безопасность – Danish

0

если вы используете AXIOS то убедитесь, следующее в файле bootstrap.js после Вардар импортируется:

window.axios.defaults.headers.common = { 
    'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'), 
    'X-Requested-With': 'XMLHttpRequest' 
}; 
Смежные вопросы