找不到Laravel REST风格的控制器方法

问题描述:

我无法让我的控制器收听DELETE请求。当我发送DELETE请求到/ api/players/1时,我得到一个NotFoundHttpException。这里是我的routes.php文件找不到Laravel REST风格的控制器方法

Route::group(array('prefix' => 'api'), function() { 

    Route::controller('matches', 'MatchController'); 
    Route::controller('players', 'PlayerController'); 
    Route::controller('auth', 'AuthController'); 

}); 

我的PlayerController

class PlayerController extends BaseController { 

    public function getIndex() { 
     // do something... this works 
    } 

    public function postIndex() { 
     // do something... this works 
    } 

    public function deleteIndex() { 
     // works when I send a DELETE request to /api/players 
    } 

    public function delete($id = null) { 
     // doesn't work! 
    } 
} 

我想我错过了一些怎样的秘密字什么的......我只是不知道如何捕捉一个DELETE请求一个ID。我究竟做错了什么?

+0

顺便说一句:http://area51.stackexchange.com/proposals/46607/laravel – Kriem 2013-03-22 11:41:47

好的...所以现在我已经把我的控制器更改为资源控制器......我不完全确定这是否是正确的方式来执行它,但它似乎工作!

新routes.php文件:

Route::group(array('prefix' => 'api'), function() { 

    Route::resource('matches', 'MatchController'); 
    Route::resource('players', 'PlayerController'); 
    Route::resource('auth', 'AuthController'); 

}); 

PlayerController.php:

class PlayerController extends BaseController { 

    public function index() { 
     // GET /api/players 
    } 

    public function store() { 
     // POST /api/players 
    } 

    public function destroy($id) { 
     // DELETE /api/players/{id} 
    } 
} 
+0

这是完全相同的方式去做吧。 – ridecar2 2013-07-15 11:38:03