Php 拉维尔不同路线同一控制器
我正在为用户和管理员构建一个API 无法编辑用户配置文件路由 在管理路由上,我使用Php 拉维尔不同路线同一控制器,php,laravel,Php,Laravel,我正在为用户和管理员构建一个API 无法编辑用户配置文件路由 在管理路由上,我使用route::resource('user','UserController') 在用户路径上,我使用route::get('profile','UserController@show) 在show方法中,Laravel默认值为 public function show($id) { } 它们之间的不同之处在于,在管理上,我可以使用/id,但在用户上,我从中间件检查他们的令牌,并合并请求以获取他们的用户id,因
route::resource('user','UserController')
在用户路径上,我使用route::get('profile','UserController@show)
在show方法中,Laravel默认值为
public function show($id)
{
}
它们之间的不同之处在于,在管理上,我可以使用/id
,但在用户上,我从中间件检查他们的令牌,并合并请求以获取他们的用户id
,因此API不需要使用配置文件/{id}
问题是如何使用相同的方法,但有一个参数需要填充,并且路由仍然/profile
我的解决方案之一是:
public function show($id){
if ($request->has('user_id')):
$id = $request->query('user_id');
endif;
}
它正在工作,但当我阅读代码时,总是检查它并替换id确实是多余的。只要将请求对象作为参数放置在控制器中,并在使用用户路由时从请求对象获取输入即可
谢谢我会为个人资料使用完全不同的方法。UserController@showProfile例如,是的,这是一个解决方案。但它的功能完全相同。只有关于ID的差异,然后让StayPrror得到ID和调用显示,id. Will认为这种方法。我会看得更多,因为有更新,也有创建。谢谢,谢谢你的回答。如果你不介意,你能给我举个例子吗?谢谢