【发布时间】:2014-09-03 08:34:52
【问题描述】:
我有 UsersController 这是 RESTful 控制器,里面有一些功能。
在UsersController.php内:
function postOutletVisit($id){
// some code
}
在routes.php 内:
Route::controller('users', 'UsersController');
通过这条路线,我可以像这样访问postOutletVisit 操作:
[POST] mydomain.com/users/outlet-visit/{id}
但我想知道是否可以将该链接转换为:
[POST] mydomain.com/users/{id}/outlet-visit
我知道我可以通过为每个操作定义路由来做到这一点,例如:
Route::post('users/{id}/outlet-visit', 'UsersController@outletVisit')
但这不适合我,因为UsersConroller里面有很多动作,我会放宽对动作的命名方便(动作名称的第一部分决定了其中使用的方法,而不是在@987654330中单独定义方法@文件)
【问题讨论】:
-
outlet-visit 是一个与 id 为 {id} 的用户相关的数据库模型,我会考虑为它创建一个单独的控制器。我知道我有很多选择,但我想知道是否可以更改参数的默认位置。
-
实际上在您的第一条评论之后,我得到了您的提示,我通过为
OutletVisit创建单独的控制器来实现我想要的行为,像这样Route::controller('users/{id}/visits', 'OutletVisitController');在我的路线中注册它,我对此很陌生最近我来自CodeIgniter的路线能力,我发现Laravel在每个领域都更好。 -
@arthurfl 我建议您添加您的 cmets 作为接受它的答案。