如何从Angular控制器调用函数到Laravel Controller?

时间:2016-11-11 06:05:40

标签: php angularjs laravel

首先,我是 Laravel + Angular 的新手,这基本上就是我在这里的原因。

我从Angular控制器中删除此功能,该控制器使用$http.delete()来调用Laravel控制器。

$scope.deleteJob = function(index) {
    $scope.loading = true;

    var job = $scope.jobs[index];

    $http.delete('/api/job/' + job.jobId)
        .success(function() {
            $scope.job.splice(index, 1);
            $scope.loading = false;
        });;
};

通过这条路线,我应该去Laravel控制器:

Route::resource('api/job','ApiJobController');

我已经定义了一个从我的雄辩数据库中删除的功能

public function destroy($id)
{
    App\Job::destroy($id);
}

我不知道我错过了什么,但每当我调用deleteJob(index)时,我都会收到服务器错误。

DELETE http://localhost:8000/api/job/20 500 (Internal Server Error)

我尝试使用/api/job/destroy/,仍然获得500

2 个答案:

答案 0 :(得分:0)

尝试使用此路线

Route::get('/api/job','ApiJobController@destroy');

或者您可以使用

$http({
  method: 'DELETE',
  url: '/api/job/' + job.jobId
}).then(function successCallback(response) {
    // this callback will be called asynchronously
    // when the response is available
  }, function errorCallback(response) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

答案 1 :(得分:0)

试试这个。

App\Job::find($id)->delete();