【发布时间】:2016-03-29 15:26:36
【问题描述】:
我正在为用户和管理员构建 API。
在编辑用户配置文件路由时卡住了。
在管理路由上我使用Route::resource('user', 'UserController')
在用户路由上我使用Route::get('profile', 'UserController@show')
在show方法上Laravel默认有
public function show($id)
{
}
它们之间的区别在于管理员我可以使用/id,但在用户我从中间件检查他们的令牌并合并请求以获取他们的user_id,因此API不需要使用profile/{id}。
问题是我怎样才能使用相同的方法,但是有一个参数要填充,并且路由仍然/profile?
我的一个解决方案是:
public function show($id){
if ($request->has('user_id')):
$id = $request->query('user_id');
endif;
}
它可以工作,但是当我阅读代码时,总是检查它并替换 id 真的是多余的。
【问题讨论】:
-
我会完全使用不同的方法来配置文件。以 UserController@showProfile 为例。
-
是的,这是一种解决方案。但功能完全一样。区别仅在于 id。谢谢
-
然后制作 showProfile 以获取 id 并使用该 id 调用 show。
-
会考虑这种方法。我会更多地看它,因为有更新,也有创建。谢谢