Laravel 4 AngularJS从数据库中删除记录

时间:2014-09-14 01:00:46

标签: php angularjs laravel-forge

我一直在研究一个小应用程序,它使用Laravel 4作为后端,以AngularJS为起点(主要是学习angularjs)。

我的想法是,我可以通过表单添加书签,并将其显示在可搜索的表格中。我已经将它工作,我可以发布到数据库并保存记录。以下工作完全符合我的需要。

    $scope.addLink = function () {

    var link =  {
        title: $scope.newTitle,
        address: $scope.newAddress,
        type: $scope.newType
    };

    $scope.links.push(link);

    $http.post('bookmarks', link);
};

但是,我无法弄清楚如何删除一行。好吧,我可以在表中删除它,但不能使用路由从数据库中删除它。我有一个ng-click函数,它使用splice从表中删除行,但不知道如何将详细信息发送到Laravel路由以从数据库中删除。到目前为止,我有这个:

    $scope.remove = function ( idx ) {
    var link = $scope.links[idx];
    $scope.links.splice(idx, 1);

    $http.delete('removemark/{link.id}');
    };

显然$ http.delete设置不正确,但不知道该怎么做。

我有这样的路线:

   Route::delete('removemark /{id}', function($id)
   {
     Bookmark::destroy($id);
    });

但这不起作用。希望有人能指出我的下一个方向。

1 个答案:

答案 0 :(得分:0)

你需要自己构建url字符串。

$scope.remove = function ( idx ) {
    var link = $scope.links[idx];       

    $http.delete('removemark/' + link.id).success(function(response){
        /* should validate response and then remove from array */
        $scope.links.splice(idx, 1);
    }).error(function(err){
       /* do something with errors */
    });
};

我建议您将项目保留在数组中,直到您确认从服务器响应中删除,然后将其从数组中删除。

使用浏览器控制台网络选项卡检查请求。您可能会看到404状态与您所拥有的相同,并且会为您提供线索,其中的内容并非正确