Laravel - 适当地使用模型和控制器

时间:2018-04-20 23:20:35

标签: php laravel

在我正在处理的应用程序中,我有三条路线:

Route::get('/people-and-teams', 'TeamsController@index');
Route::get('/people-and-teams/{team}', 'TeamsController@show');
Route::get('/people-and-teams/{team}/{person}', 'UserController@show');

所以基本上你去了一个团队页面,它列出了所有团队,点击一个特定的团队加载有关团队的详细信息以及在那里工作的人员,点击团队成员为你提供了该用户的个人资料。

表格

  • 用户
  • 配置文件

链接

  • 团队有很多用户
  • 用户有一个个人资料

正如您所看到的,在第三条路线中,我考虑使用UserController,但这是否有可能并且有意义:

  1. 通过加载团队和用户之间的关系获取用户信息
  2. 然后通过在TeamsController内加载用户和个人资料之间的关系来获取个人资料信息?
  3. 有没有正确的方法可以做到这一点,还是我可以自由选择使用哪个控制器?

1 个答案:

答案 0 :(得分:0)

如果你没有使用资源指令,你可以随意使用路线中的任何控制器......

简短的回答是,如果您可以直接呼叫特定用户,那么就这样做......

始终尽量避免调用关系,因为它们都会带来额外的处理成本。

因此,性能方面,如果在团队页面上,您需要调用远程关系来获取user_id,而不是更好,在特定人员页面上调用此关系,因为这可能不会经常执行。

请注意,在现实世界中,它取决于用户负载。