我在laravel 5中有一个休息API设置。前端是AngularJS。我有点困惑,在用户选择使用ui-select
的多个项目后,如何将它保存到数据库中。AngularJS:如何推送多个选定的项目并保存到数据库中
问题
1 - 我应该如何选择数据发送到API?
2- Laravel:如何更新多个现有的记录。
现在我知道laravel开箱即用saveMany()
。但问题仍然是如何做到这一点?
我找不到任何我可以从中受益的资源。有人请帮助我。
我在laravel 5中有一个休息API设置。前端是AngularJS。我有点困惑,在用户选择使用ui-select
的多个项目后,如何将它保存到数据库中。AngularJS:如何推送多个选定的项目并保存到数据库中
问题
1 - 我应该如何选择数据发送到API?
2- Laravel:如何更新多个现有的记录。
现在我知道laravel开箱即用saveMany()
。但问题仍然是如何做到这一点?
我找不到任何我可以从中受益的资源。有人请帮助我。
你有两个部分。您必须将AngularJS的AJAX请求发送到由Laravel实施的API。
您需要$http service使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
});
}]);
您需要创建路线:
Route::put('entities/batchUpdate' , array('uses' => '[email protected]'));
你也需要实现你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 */
}
很棒!谢谢! – user3641381
您能解释一下您的意思吗?$ jsonArray = $ input-> data;' – user3641381
您在您的JSON对象中有_some_结构。你用'(object)Input :: all()'把它放到'$ input'中。然后通过'$ input-> data'访问这个对象的'data'属性。 –
的Laravel文档做大量的工作,并给出了如何挽救许多例子/附上相关雄辩车型:http://laravel.com/docs/5.1/eloquent-relationships –
AngularJS部分:$ HTTP] (https://docs.angularjs.org/api/ng/service/$http)和[$ resource](https://docs.angularjs.org/api/ngResource/service/$resource)服务。 –
@SharikovVladislav我有一切设置。我知道$ http是如何工作的但只是想知道应该如何将选定的数据推送到AP i – user3641381