AngularJS:如何推送多个选中的项目并保存到数据库中


AngularJS: how to push multiple selected items and save into database

我在laravel 5中有一个rest api设置。前端是AngularJS。在用户使用ui-select选择多个项目后,如何将其保存在数据库中,我有点困惑。

问题

1-我应该如何将所选数据发送到API?

2-Laravel:如何更新多个现有记录。

现在我知道laravel有现成的saveMany()。但问题仍然是如何做到这一点?

我找不到任何可以从中受益的资源。有人能帮帮我吗。

您有两个部分。您必须从AngularJS向您的API发送AJAX请求,这是由Laravel实现的。

AngularJS部分

您需要$http服务来发出AJAX请求。您需要$http.post:

var module = angular.module('myApp', []);
module.controller('myCtrl', ['$http', function ($http) {
  var someArray = [{id: 1, name: 'name1'}, {id: 2, name: 'name2'}];
  $http.post('/api/entities/batchUpdate', {data: someArray}).success(function (data) {
    // handle response there
  });
}]);

Laravel部分:

您需要创建路线:

Route::put('entities/batchUpdate' , array('uses' => 'MyCtrl@batchEntitiesUpdate'));

此外,您还需要为您的MyCtrl控制器实现方法。

public function batchEntitiesUpdate()
{
    $input = (object)Input::all();
    $jsonArray = $input->data;
    foreach ($jsonArray as $item) {
        $item = (object) $item;
        $entity = Entity::find($item->id)
        $entity->name = $item->name;
        $entity->save();
    }
    /* return return some response */
}