AngularJS - метод PUT не работает (ошибка 404)

Я новичок в AngularJS и у меня проблемы с обновлением объекта через REST. Я использую PHP / Mysql Backend (Slim Framework).
Я могу получить (GET), создать (POST) новый объект, но не редактировать (PUT) один. Вот код:

моя форма:

<form name="actionForm" novalidate ng-submit="submitAction();">
  Name: <input type="text" ng-model="action.name" name="name" required>
  <input type="submit">
</form>

Мой сервис:

var AppServices = angular.module('AppServices', ['ngResource'])
AppServices.factory('appFactory', function($resource) {
  return $resource('/api/main/actions/:actionid', {}, {
    'update': { method: 'PUT'},
  });
});

app.js

var app = angular.module('app', ['AppServices'])
app.config(function($routeProvider) {
  $routeProvider.when('/main/actions', {
    templateUrl: 'partials/main.html',
    controller: 'ActionListCtrl'
  });
  $routeProvider.when('/main/actions/:actionid', {
    templateUrl: 'partials/main.html',
    controller: 'ActionDetailCtrl'
  });
  $routeProvider.otherwise({redirectTo: '/main/actions'});
});

controllers.js:

function ActionDetailCtrl($scope, $routeParams, appFactory, $location) {
  $scope.action = appFactory.get({actionid: $routeParams.actionid});
  $scope.addAction = function() {
    $location.path("/main/actions/new");
  }
  $scope.submitAction = function() {
    // UPDATE CASE
    if ($scope.action.actionid > 0) {
      $scope.action = appFactory.update($scope.action);
      alert('Action "' + $scope.action.title + '" updated');
    } else {
      // CREATE CASE
      $scope.action = appFactory.save($scope.action);
      alert('Action "' + $scope.action.title + '" created');
    }
    $location.path("/main/actions");
  }
}

В Slim, в api / index.php, я определил эти маршруты и функции:

$app->get('/main/actions', 'getActions');
$app->get('/main/actions/:actionid',    'getAction');
$app->post('/main/actions', 'addAction');
$app->put('/main/actions/:actionid', 'updateAction');

Когда я создаю новое «действие», все работает как положено. Но когда я пытаюсь редактировать существующий, я получаю эту ошибку:

СТАВИТЬHttp: //project.local/api/main/actions 404 Не Найдено

Действие не обновляется (хотя отображается предупреждение «Действие xxx обновлено»)

Это проблема с моей настройкой routeProvider? Я думаю, что PUT URL пропускает идентификатор в конце ...

Я уточняю, что если я попытаюсь смоделировать запрос PUT с помощьюПочтальон-хром-Extension например, все работает хорошо (PUTHttp: //project.local/api/main/actions/3 возвращает ожидаемые данные)

Ответы на вопрос(1)

Ваш ответ на вопрос