Laravel-将表格输入从angular传递到API控制器?

时间:2019-09-19 13:53:50

标签: angularjs laravel

我的后端有一个delete控制器,它是按角度排列的。其角度控制器如下所示:

angular.module('dashboard')
.controller('CoursesDeleteController', ['$scope', '$http', '$location', '$routeParams', function ($scope, $http, $location, $routeParams) {
    $scope.id = $routeParams.id;
    $scope.courses = {
        delete: 0
    };

    $scope.loaded = false;
    $scope.busy = false;
    $scope.error = false;

    $scope.setDelete = function (value) {
        $scope.webinarcourses.delete = value;
    };

    $scope.delete = function () {
        $scope.busy = true;
        $http.delete('/api/courses/' + $scope.courses.id, $scope.courses).then(function (response) {
            $scope.busy = false;
            $location.path('/courses');
        }, function (response) {
            $scope.busy = false;
            $scope.error = 'Unable to delete course...';
        });
    };

    var load = function () {
        $scope.busy = true;
        $http.get('/api/courses/' + $scope.id).then(function (response) {
            $scope.courses = response.data;
            $scope.busy = false;
            $scope.loaded = true;
        }, function () {
            $scope.busy = false;
            $scope.error = 'Unable to load course...';
        });
    };

    load();
}]);

视图是

<form role="form" class="panel-footer">
    <div class="form-group col-xs-12 col-sm-6 col-md-2">
        <label>Delete from Integrations?</label><br>
        <div class="btn-group" data-toggle="buttons">
            <label class="btn btn-info"
                   ng-class="{ active: courses.delete == 1 }"
                   ng-click="setDelete(1)">
                <input type="radio"> Yes
            </label>
            <label class="btn btn-info"
                   ng-class="{ active: courses.delete == 0 }"
                   ng-click="setDelete(0)">
                <input type="radio"> No
            </label>
        </div>
    </div>

    <button class="btn btn-danger" ng-click="delete()" ng-disabled="busy || !loaded"><span class="glyphicon glyphicon-trash"></span> Delete</button>
    <a href="#/courses/view/{{ id }}" class="btn btn-default" role="button"><span class="glyphicon glyphicon-arrow-left"></span> Back</a>
    <div class="progress progress-striped active push-sm" ng-show="busy">
        <div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
            <span class="sr-only">Busy...</span>
        </div>
    </div>
</form>

然后在我的API控制器中:

public function destroy($id)
    {
        $data=Input::all(); // do something with this data...
        \App\Courses::find($id)->delete();
    }

问题是我没有看到任何数据。我以为我可以通过courses.delete获得Input::,但它为空。

我必须忽略某些东西,也许与Courses模型没有delete列这一事实有关,但是我认为如果我只是从与API控制器成角度,并且实际上不尝试访问不存在的列。我只是尝试使用courses.delete作为确定API控制器delete方法中某些动作的方法。

1 个答案:

答案 0 :(得分:0)

好的,我忽略了delete方法的特殊性。原来我只需要这样做:

$http.delete('/api/courses/' + $scope.courses.id, {
    params: {delete: $scope.courses.delete}
}).then(function (response) {

致谢