Laravel 控制器方法参数的含义

如图所示 class PostController这个类的方法show(),括号中的参数为Post $post,这样的表达是什么意思,应该怎么理解呢?(其中model里面有一个类是POST)

以下是路由:

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

这是典型的依赖注入,/posts/{post} laravel 以 {post} 为主键自动实例化 Post 为模型对象 $post,访问 /posts/123,它所依赖的中间件是: 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class

5年前 评论
讨论数量: 3

Post\App\Post 这个类,也就是你说的那个 Model。

Laravel 会智能的帮你做查询,如何做到智能分析呢?

  • 自动分析变量类型是一个 Model
  • 而且还是在 show() 方法
  • 请求参数中还有编号

那么 Laravel 一看,这小子是要看文章详情啊,我帮你查出来吧,内部执行了类似这样的代码:

$post = Post::find($id)
5年前 评论
Richard852555 (楼主) 5年前

只有有一个类POST 就会自动注入一个实例$post,于是就可以直接在下面使用这个实例化后的对象的方法了。这就是依赖注入。

5年前 评论

这是典型的依赖注入,/posts/{post} laravel 以 {post} 为主键自动实例化 Post 为模型对象 $post,访问 /posts/123,它所依赖的中间件是: 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class

5年前 评论

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