【发布时间】:2023-04-09 07:53:01
【问题描述】:
想象一下,在 laravel 构造函数(PostController)中我需要注入 3 个模型:用户、帖子和评论。
我有两种情况:
1) 在控制器构造函数中注入这 3 个模型,然后我在具体函数中使用这个控制器变量,如下所示:$this->post
2) 随时随地将这些模型注入到具体控制器的函数中(例如index(Post $post));
这两个哪个更好?在第一种情况下,在索引函数中我只使用$this->post 变量,但我还创建了$this->comment 和$this->user,因为我在其他函数中需要它们?但我不需要它们在索引中,所以每当我通过寻址索引特定路由调用索引时,我都会注入和创建它们。那不是很糟糕吗?那么这些哪个更好呢?
【问题讨论】:
-
你不能注入模型。你为什么要那个?您的问题可能有更好的解决方案
-
因为我不想写 $user = new User();那么我将无法在测试时模拟这个 $user 变量
-
我也可以注入模型
标签: php laravel model-view-controller model controller