【发布时间】:2016-10-05 01:27:36
【问题描述】:
我是 Laravel (5.1) 的新手,我想知道我是否没有以正确的方式使用模型结果。例如。下面是我在视图中的一些代码。我得到了我想要的结果,但页面当前加载速度很慢。我想知道是否是因为它为下面的每一行重复/单独查询数据库?例如。我应该将 $item->sessions 存储到临时 PHP 变量(比如 $x)中,然后执行 $x->classes->some_column 等吗?
任何建议都非常感谢,在此先感谢。
@foreach ($items as $item)
@if ($item->sessions->classes->some_column== 0)
{{$item->sessions->location}}
@else
{{$item->sessions->classes->suburb}}, {{$item->sessions->classes->state}}
@endif
Much more code that uses $item-> ...
@endforeach
【问题讨论】:
-
你能告诉你如何获取 $items 变量的内容吗?
-
如果你还没有使用 eager loadinf,避免查询过多
$items = Item::with('sessions.classes')->get() -
拜托,imo,您需要对花费时间进行一些测量。 目前这只是猜测。即1)定义缓慢? 2)你在一个页面上显示了多少项目? 3) 你每次从数据库中获取多少项目?您是否对各个查询进行了基准测试以找出哪些是慢速查询?您是否将大量数据推送到客户端(即延迟是一个因素)?如果没有测量,那么您可能会花费大量时间来更改对经过时间影响不大的事情?
标签: php mysql database laravel