【问题标题】:Pass JSON data from AngularJS to Laravel Controller via POST通过 POST 将 JSON 数据从 AngularJS 传递到 Laravel 控制器
【发布时间】:2016-01-05 04:30:07
【问题描述】:

我正在使用 AngularJS 将数据发布到 Laravel 控制器,然后保存到数据库中。

我遇到了一个问题,我从 AngularJS 传递到 Laravel 的数据没有被正确解析。

这是我正在传递的数据:

$scope.invoice_items = [
    {
        quantity: '1',
        price_per: '30',
        price_total: '30'
    },
    {
        quantity: '2',
        price_per: '5',
        price_total: '10'
    }
];

这是我的功能:

$scope.createInvoice = function () {

    invoiceService.save($scope.invoice_items).success(function(somedata) {
        alert('successful!');
        console.log(somedata);
    }).error(function(data) {
        alert('not successful');
        console.log(data)
    });
};

这是发送数据的服务:

save: function(invoiceData) {
        return $http({
            method: 'POST',
            url: 'http://localhost/blahblah',
            headers: { 'Content-Type' : 'application/x-www-form-urlencoded' },
            data: $.param(invoiceData)
        });
    }

这是我的 Laravel 控制器:

public function store() {
    $input = request::all();

    return $input;
}

最后,$input 只返回:

Object {undefined: ""}

所以我的问题是。如何将 invoice_items 中的数据传入 laravel 控制器,使其显示如下内容:

invoice_items = [
    {
        quantity: '1',
        price_per: '30',
        price_total: '30'
    },
    {
        quantity: '2',
        price_per: '5',
        price_total: '10'
    }
];

然后我可以在我的 Laravel 控制器中做一个 foreach 来做任何我想做的事情。

最终我想在我的 laravel 控制器中执行此操作:

foreach(invoice_items as item) {
    echo item->quantity;
}

我希望这是有道理的。 任何人都知道我可以如何做到这一点?

【问题讨论】:

    标签: javascript php json angularjs laravel


    【解决方案1】:

    其实我想通了!

    我所做的修改是在 Angular 服务中:

    data: invoiceService
    

    没有 $.param..

    而在 Laravel 控制器中,我所做的只是:

    return file_get_contents('php://input')
    

    这成功了!

    【讨论】:

      猜你喜欢
      • 2016-07-09
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多