2015-08-22 6 views
1

Итак, я хотел бы обновить запись в Laravel, используя Angular. Это то, что у меня есть, но я боюсь, что это не лучшая практика?Laravel/Angular update RESTfull

Так что, в основном, то, что я делаю сейчас, это: 1. Я получаю форму данных из моего единственного сообщения с функцией «показать» (я думаю, это то, где я уже ошибаюсь, в моей функции обновления)? 2. Я заполняю свою форму этими данными 3. Я пытаюсь обновить данные с помощью функции «update». Я не думаю, что это RESTfull?

Angular.js: Фабрика шоу и обновление:

update : function(
      id, 
      rideEdit 
     ) 
     { 
      //rideData.ridedate = $filter('date')(rideData.ridedate, "dd-MM-yyyy HH:mm:ss"); 
      console.log(rideEdit); 
      return $http({ 
       method: 'PATCH', 
       url: '/api/rides/' + id, 
       headers: { 'Content-Type' : 'application/x-www-form-urlencoded' }, 
       data: $.param(rideEdit) 
      }); 
     }, 
     show : function(
      id 
     ) 
     { 
      return $http.get('/api/rides/' + id); 
     } 

Angular.js: EditController (это где я заполнить мою форму, и Cath щелчки кнопок, ...).

 $scope.rideEdit = {}; 
    var id = $stateParams.id; 
    // Alles nemen van 1 record 
    Ride.show(id) 
     .success(function(data) { 
      console.log(data); 
      $scope.rideEdit.Dataname = data.name; 
      $scope.rideEdit.Description = data.description; 
      $scope.rideEdit.datetime = data.ridedatetime; 
      $scope.rideEdit.persons = data.ridepersons; 
      $scope.rideEdit.vertrekpunt = data.ridevertrekpunt; 
      $scope.rideEdit.eindpunt = data.rideeindpunt; 
     }); 

    $scope.updateRide = function() { 
     console.log($scope.rideEdit); 
     Ride.update(id, $scope.rideEdit) 
      .success(function (data) { 
       ToastFactory 
        .show('Rit aangepast!'); 
       $location.path('/home'); 
      }) 
      .error(function(error) { 
       ToastFactory 
        .show(error); 
      }); 
    }; 

Laravel: Ridescontroller:

public function index() 
{ 
    $results = Ride::with('user')->get(); 
    return $results; 
} 

/** 
* Store a newly created resource in storage. 
* 
* @param StoreRideRequest $request 
* @return Response 
*/ 
public function store(StoreRideRequest $request) 
{ 
    $ride = new Ride($request->all()); 
    Auth::user()->rides()->save($ride); 
} 

/** 
* Display the specified resource. 
* 
* @param int $id 
* @return Response 
*/ 
public function show($id) 
{ 
    //$results = Ride::find($id)->with('user')->get(); 
    $result = Ride::find($id); 
    return $result; 
} 

/** 
* Show the form for editing the specified resource. 
* 
* @param int $id 
* @return Response 
*/ 
public function edit($id) 
{ 
    // 
} 

/** 
* Update the specified resource in storage. 
* 
* @param Request $request 
* @param int $id 
* @return Response 
*/ 
public function update(Request $request, $id) 
{ 
    $updateride = Ride::findOrFail($id); 
    $updateride->update($request->all()); 
} 

Все работает (за исключением обновления). Итак, у меня есть 2 вопроса: 1. Является ли этот метод ОК с RESTfull? 2. Если это так, что случилось с моей функцией обновления?

Спасибо!

ответ

0

Чтобы ответить на часть 2 моего вопроса:

Мой namingconvention не было правильным. Имена полей, которые я отправил с обновлением, не совпадают с именами в базе данных. Поэтому их изменение решило проблему обновления.

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