2016-08-25 30 views
14

Tôi đang chơi với laravel 5.3 và vue.js mới và tôi muốn thực hiện cuộc gọi GET cho một số người dùng tôi có trong DBLaravel không được xác định

Im bằng cách sử dụng thành phần btw.

Đây là app.js tôi

require('./bootstrap'); 

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

const app = new Vue({ 

    el: 'body', 

}); 

này được User.vue thành phần của tôi rời khỏi mẫu HTML ra cho bài kích thước lý do tôi có thể gửi nó Nếu cần

<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 nhận 2 các lỗi trong bảng điều khiển

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

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

đây là package.json của tôi vì bạn có thể thấy tôi có tất cả các thông số cho việc này tài nguyên rk vue và 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" 
    } 
} 

Hy vọng ai đó có thể giúp tôi ở đây. Cảm ơn bạn

+0

bạn có thể chỉ cho bạn '/ bootstrap.js'.. Một nơi nào đó biến/hằng số 'Laravel' đang được sử dụng mà không có nó được khởi tạo. –

+0

@NEOJPK, bạn có thể vui lòng đăng mẫu HTML của mình không? Tôi cũng chơi với nhau. Vì vậy, nó sẽ giúp tôi học hỏi. –

+0

Tôi không còn dude nữa. Nhưng tôi nghĩ họ đã sửa nó. Đi và lấy các versión mới nhất từ ​​nhà soạn nhạc. Và sau đó npm cài đặt – NEOJPK

Trả lời

37

Cố gắng đặt này trên lưỡi của bạn, như bạn có thể nhìn thấy được chèn theo mặc định trên app.blade trên Laravel 5,3

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

Tôi đã có một vấn đề tương tự, và tôi đã giải quyết theo cách này! Cảm ơn! – Mistre83

37

Hoặc cho một định dạng bụi:

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

Liệu giống như câu trả lời của Rocco.

+0

bạn có thể vui lòng thêm chi tiết hơn vào câu trả lời này tại sao chúng ta cần phải làm điều này? – Naeem

+1

Nó chỉ sạch hơn. –

+0

tôi nghe nói rằng laravel cần điều này để cung cấp bảo mật – Danish

0

nếu bạn đang sử dụng Axios sau đó đảm bảo sau đây là trong tập tin bootstrap.js của bạn sau khi Axios được nhập khẩu:

window.axios.defaults.headers.common = { 
    'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'), 
    'X-Requested-With': 'XMLHttpRequest' 
}; 
Các vấn đề liên quan