Php 拉维尔不同路线同一控制器

Php 拉维尔不同路线同一控制器,php,laravel,Php,Laravel,我正在为用户和管理员构建一个API 无法编辑用户配置文件路由 在管理路由上,我使用route::resource('user','UserController') 在用户路径上,我使用route::get('profile','UserController@show) 在show方法中,Laravel默认值为 public function show($id) { } 它们之间的不同之处在于,在管理上,我可以使用/id,但在用户上,我从中间件检查他们的令牌,并合并请求以获取他们的用户id,因

我正在为用户和管理员构建一个API

无法编辑用户配置文件路由

在管理路由上,我使用
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认为这种方法。我会看得更多,因为有更新,也有创建。谢谢,谢谢你的回答。如果你不介意,你能给我举个例子吗?谢谢