0

我正在使用 Laravel 3 中的控制器构建 REST API,我想实现以下结构:

/api/controller/{param}/method/{optional param}

目前,我为每种方法设置了单独的路由,这似乎是一个乏味的解决方案:

Route::any('api/ControllerA/(:any)/MethodA/(:any?)','api.ControllerA@MethodA');
Route::any('api/ControllerA/(:any)/MethodB/(:any?)','api.ControllerA@MethodB');
// etc.
Route::any('api/ControllerB/(:any)/MethodA/(:any?)','api.ControllerB@MethodA');
// etc.

最后,一个处理无效调用的包罗万象:

Route::any('api/(:all)',function(){
    // return invalid call 404 response
});

这工作得很好,但我无法想象这是最佳解决方案。我可能会考虑做一些类似这篇文章建议的事情,但我觉得这会导致一些笨重的 API 控制器。有什么我想念的吗?

4

1 回答 1

1

目前 Laravel 3 不支持controller/{param}/method/{param}不手动定义的 url。Laravel 4 支持,但仅适用于默认资源路由(索引、显示、更新、删除等)。您不能定义自定义操作。

我建议你现在坚持你的方法。这就是我们在 Laravel 3 上所做的。如果你真的不喜欢这样,你可以\Laravel\Routing\Router用你自己的实现来扩展。

于 2013-03-13T18:35:11.797 回答