我在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 */
}