我在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