Laravel VueJS Axios将阵列发送到控制器

时间:2017-07-28 12:40:23

标签: php arrays laravel vue.js axios

我有一个laravel 5.4应用程序,它使用VueJS 2.0作为前端。

我试图在页面填充后将访问者数组发布到控制器但是当我从控制器返回数组时数据不存在。

我无法看到我的生活中我做错了什么?有趣的是,如果我发送两个访问者,我会从我的控制器返回两个空数组,因此访问者的数量正在运行它只是没有捕获数据。

enter image description here

我的vue实例。

  <script>
    new Vue({

    el: '#app',

    data: {
        visitors: [],
        visitor: [],
    },

    methods: {
        addVisitor() {
            this.visitors.push(this.visitor);
            this.visitor = [];
        },

        storeVisit()
        {
          axios({
            method: 'post',
            url: '/visit/new',
            data: {
              visitors: this.visitors
            }
          });
        }
    },

});
  </script>

我的HTML页面

<p>Visitors</p>
    <div class="columns">
      <div class="column">
          <input class="input" placeholder="First Name" v-model="visitor.first">
      </div>
      <div class="column">
          <input class="input" placeholder="Last Name" v-model="visitor.last">
      </div>
      <div class="column">
          <input class="input" placeholder="Company" v-model="visitor.company">
      </div>
      <div class="column">
          <input class="input" placeholder="Email" v-model="visitor.email">
      </div>
      <div class="column">
          <button class="button is-primary" @click="addVisitor()">Add</button>
      </div>
    </div>

然后我有一个按钮来操作storeVisit()方法。

<button class="button is-primary" @click="storeVisit">Save Visit</button>

我的控制器正在等待发布请求

public function store(Request $request)
    {
        return $request->visitors;
    }

我的回复

  

{ “访客”:[[],[]]}

1 个答案:

答案 0 :(得分:2)

visitor应该是一个对象,而不是一个数组

data: {
    visitors: [],
    visitor: {}, // <- object here
},
addVisitor() {
    this.visitors.push(this.visitor);
    this.visitor = {}; // <- reset to an empty object
},