【问题标题】:How to pass value from vue.js to controller?如何将值从 vue.js 传递给控制器​​?
【发布时间】:2017-01-03 22:09:15
【问题描述】:

我在 vue.js 中有一个值数组,但问题是我需要将这些值传递给控制器​​。我该怎么做,或者这是错误的方式?

这是在我的 vue.js 中获取值的地方:

 additional_features: this.additionals_features

this.$http.patch('/profile/'+ user_id +'/property/'+ property_id +'/edit', property_credentials).then(function(response) {

                        $("html, body").animate({ scrollTop: 0 }, "slow");
                        this.property_status = true;
                        this.property_success_update_message = response.data.successUpdateMsg;
                    } , function(response) {
                        $("html, body").animate({ scrollTop: 0 }, "slow");
                        this.property_status = false;
                        this.property_errors = response.data
                    });

这是我的控制器

  $additional_features = $request->input('additionals_features');

这是我的html:

<input type="hidden" v-model="property_credentials.additional_features" name="additional_feature[]" value="@{{property_credentials.additional_features}}" />

【问题讨论】:

  • 不能用AJAX吗?
  • 我不想使用 ajax,因为应用程序的其余部分在 vue.js 中
  • 你不能。 Vue 是客户端,(Laravel)控制器是服务器端。控制器已被处理,一旦响应返回到浏览器并且 Vue.js(和任何 JavaScript)启动,该过程就结束了。
  • 嗯,,,在这种情况下你有什么建议?我可以将值从 vue.js 传递到视图,然后从视图传递到控制器吗?

标签: laravel laravel-5 vue.js


【解决方案1】:

您可以使用vue-resource 并使用邮寄方式发送:

new Vue({
    el: '#app',

    data: {
        token: '{{ csrf_token() }}',
        property_credentials: {
            additionals_features: [],
        }
    },

    methods: {
        submit: function() {
            this.$http.post('/your-api-url', {
                '_method': 'patch',
                '_token': this.token, // You must pass this token on post requests
                'additionals_features': this.property_credentials.additionals_features,
            });
        }
    }
});

数据将直接到达您的控制器,因此您可能可以

$additional_features = $request->get('additionals_features');

这些数据到达控制器后如何处理,由您决定。

【讨论】:

  • 我编辑了我的答案...我正在使用发布请求....但我无法将数据保存在数据库中
  • 那又怎样?您必须使用 post(而不是补丁)并将 _method 发送到 Laravel,您应该很好,该数据将按原样到达您的控制器,如果您不希望将其保存在数据库中到。
猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多