2016-11-11 173 views
0

首先,我很新的Laravel + Angular这基本上是我为什么在这里。如何从Angular控制器调用Laravel控制器的功能?

我有这个功能从我的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'); 

我所定义的函数从我的口才DB删除

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

+0

什么是响应错误? – aseferov

+0

@aseferov无法加载资源:服务器回应状态为500 –

回答

0

与这条路线

Route::get('/api/job','[email protected]'); 

尝试或者您可以使用

$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. 
    }); 
+0

快速问题,如果我有另一个函数从ApiJobController调用怎么办?这条路线是否会限制我的功能销毁?谢谢 –

+0

您的方法类型和url将决定与函数需要调用,请检查laravel REST API,因为您正在使用资源路径 – C2486

0

试试这个。

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

+0

仍然返回500.我认为问题是,我无法与laravel控制器jobController @ destroy沟通,并且请简要说明您希望我尝试的代码,谢谢! @ sahil09 –

+0

@HardSpocker您可以在Job model – sahil09

+0

中显示您的销毁($ id)方法中的代码,您是指该模型?即时通讯使用雄辩的模式它不包含任何东西 –