【问题标题】:Laravel Different Route Same ControllerLaravel 不同的路由相同的控制器
【发布时间】: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。
  • 会考虑这种方法。我会更多地看它,因为有更新,也有创建。谢谢

标签: php laravel


【解决方案1】:

只需将请求对象作为参数放在控制器中,并在使用用户路由时从请求对象获取输入。

谢谢

【讨论】:

  • 您好,感谢您的回答。如果你不介意,你能给我举个例子吗?谢谢
猜你喜欢
  • 2013-09-24
  • 2017-04-05
  • 2016-10-03
  • 2018-12-12
  • 2016-03-03
  • 2021-05-26
  • 2018-02-18
  • 2016-06-04
  • 2014-11-01
相关资源
最近更新 更多