2015-03-25 4 views
0

Привет Я пытаюсь обновить свои данные в angularJS (frontend) и laravel (backend). Но даже я получил данные от id, но я всегда делаю новые данные. Я думал, что это вызывает ошибку моего ларавелла, но не уверен.обновление данных в laravel и angularJS

AngularJS сервис

app.factory('Assets', function($resource) { 


    return $resource('/api/assets/:assetId',{assetId:'@id'},{ 
     update: { 
      method: 'PUT' // this method issues a PUT request 
       } 
    }); 
}); 

Controller (для списка данных)

app.controller('fixedAssetListCtrl',['$scope','$location','$rootScope','Assets', function($scope, $location, $rootScope,Assets){ 
$scope.assets = Assets.query(); 

$scope.goEdit = function(id){ 

    Assets.query({assetId:id}.edit); 
    $location.path('/editFixedAsset').search({assetId:id}); 

} 


}]); 

Controller (для редактирования)

app.controller('fixedAssetEditCtrl',['$scope','$location','$rootScope','Assets', 
function($scope, $location, $rootScope, Assets){ 

    var edit_id=$location.path('/editFixedAsset').search(); 


    var assetId=parseInt(edit_id.assetId); 
    //window.alert($rootScope.assetId.ID); 


    $scope.editassets = Assets.query({assetId});// getting data 
    // console.log($scope.editassets); 

    $scope.asset = {}; 

    $scope.updateFixedAsset =function(asset){ 
     var faData ={ 
          detailAssetCode:$scope.detailAssetCode, 
          detailDescription:$scope.detailDescription, 
          detailParchaseDate:$scope.detailParchaseDate, 
          detailSoldDate:$scope.detailSoldDate 


         } //end of faData 


    Assets.update({assetId},asset); 

} 


}]); 

Laravel Маршруты

Route::group(array('prefix' => '/api'), function() { 
Route::resource('assets', 'AssetController'); 

}); 

Контроллер

public function show($id){ 
    $assets = FAModel::find($id); 


     $response[] = [ 
      'detailAssetCode' => $assets->AssetCode, 
      'detailDescription' => $assets->Description,    
      'detailPurchaseDate' => $assets->PurchaseDate, 
      'detailoldDate' =>$assets->SoldDate, 

     ]; 





    return Response::json($response, 200); 
} 

public function update($id){ 
$FAModelObj = new FAModel; 
    $fixedAssetData = FAModel::find($id); 
     $FAModelObj->AssetCode = Input::json('detailAssetCode'); 
     $FAModelObj->Description = Input::json('detailDescription');//need to be JSON object?? 
     $FAModelObj->PurchaseDate = Input::json('detailPurchaseDate'); 
     $FAModelObj->SoldDate = Input::json('detailSoldDate'); 


     $FAModelObj->push(); 




    return Response::json(array('success'=>true)); 

} 

Можете ли вы найти проблему ?? Как я могу изменить для обновления данных? Благодарю.

ответ

0

Проблема в том, что вы создаете новый экземпляр для сохранения данных вместо существующего. Вот почему в базе данных создается новая строка. Ваш код должен быть таким.

public function update($id){ 

    $fixedAssetData = FAModel::find($id); 
    $fixedAssetData->AssetCode = Input::json('detailAssetCode'); 
    $fixedAssetData->Description = Input::json('detailDescription');//need to be JSON object?? 
    $fixedAssetData->PurchaseDate = Input::json('detailPurchaseDate'); 
    $fixedAssetData->SoldDate = Input::json('detailSoldDate'); 
    $fixedAssetData->push(); 

    return Response::json(array('success'=>true)); 
} 

Надеюсь, это будет полезно для вас.

+0

Да! Он работает сейчас! Я положил $ FAModelObj = новый FAModel; , потому что у меня есть ошибка ... (извините, я забыл, что это такое, я найду и прокомментирую позже.) Но это полезно. Спасибо @Arkar Ang – tekmakmayakon

+0

Добро пожаловать. @tekmakmayakon –

Смежные вопросы