Laravel 项目的参数处理应该放在什么位置?

我的项目里,route中有非常多的url和参数,controller的每个method中都需要先find出来一个model,然后才能进行操作。

后来我看到了repository模式,就产生了一个困惑:到底参数处理(也就是从$request->foo_id生成一个$foo)这个环节,应该放在controller的construct函数中(如$this->foo = Foo::find(request()->get('foo_id'))),还是应该放在repository的construct中(方法同上),还是应该在每个函数中都处理一次(如$foo = Foo::find($request->foo_id)),好像怎么写都不太优雅。

欢迎大家踊跃讨论。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4
JeffreyBool

如果要简单的方式可以使用隐形路由的方式. 如在控制器

 public function edit(User $user)
{
  return $user;
}
6年前 评论

@张高元 如果我没记错,这个只是依赖注入,并不能获取到参数对应的model吧

6年前 评论

@FlappyHeart 是可以的,看一下新版本的控制器模型,以前是 id, 现在可以是模型,会自动注入对应 id 本模型的实例。
路由模型

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!