Laravel Eloquent 获取数据的问题:以下两种操作方式,哪种更优?请大家指点一下!多谢!

第一种方式:先获取数据,统一送给页面,页面使用数据

控制器:
$scores = $user->scores;
return view('user.index', compact('user','scores'));
页面:
{{ $scores->english }}
{{ $scores->math }}

第二种方式:页面使用数据的时候再获取数据

控制器:
return view('user.index', compact('user'));
页面:
{{ $user->scores->english }}
{{ $user->scores->math }}

PS:上面的两个代码,只是举例来说明我的想法,不在意语法正确

这两种方式中,是不是第一种方式,更好一些?只获取一次数据,页面都可以使用?

而第二种方法,每用一次数据,都要取一次?

可能形容我的想法的代码不太直观,见谅!

请大家指点一下!多谢!

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

我一般使用第二种,可以通过 eager Loading 来获取数据避免 N + 1 的查询问题。

$users = User::with('roles')->get();

另外你第一种的话 单独的 roles 不太好确定对应的用户吧。

10个月前 评论
Epona (作者) 10个月前
HEPING (楼主) 10个月前
HEPING (楼主) 10个月前
讨论数量: 3
Epona

我一般使用第二种,可以通过 eager Loading 来获取数据避免 N + 1 的查询问题。

$users = User::with('roles')->get();

另外你第一种的话 单独的 roles 不太好确定对应的用户吧。

10个月前 评论
Epona (作者) 10个月前
HEPING (楼主) 10个月前
HEPING (楼主) 10个月前

第2

10个月前 评论
半人间 (作者) 10个月前
HEPING (楼主) 10个月前
HEPING (楼主) 10个月前

有什么区别其实你用debugbar看一下sql就知道了

10个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!