我刚刚开始使用Laravel并且我遇到了问题,我的网页速度很慢。 问题是我的查询不理想:
`
<div class="container">
@foreach ($product as $single)
<?php
$tagy = $single->tags()->get();
echo "<div class='item";
foreach($tagy as $tag) {
$premenna = Tags::where('id','=',$tag->tagID)->first();
echo " item".$premenna->id;
}
echo "'>";
?>
<div class="thumbnail porfolio">
<a href="/product/{{ $single->id }}"><img class="image" src="<?=Croppa::url($single->destinationPath.'/'.$single->coverphoto, 250)?>" /></a>
<div class="caption">
<div class="info">
<a href="/product/{{ $single->id }}"><h4 style="font-weight: bold;">{{ $single->name }}</h5></a>
<p style="font-size: 15px; margin-bottom: 0px;">{{ $single->city }}</p>
<p class="date">{{ $single->date }}</p>
</div>
<div class="map-location">
<a href="http://maps.google.com/maps?q={{$single->gpsn}},{{$single->gpse}}&ll={{$single->gpsn}},{{$single->gpse}}=17" target="_blank"><i class="fa fa-dot-circle-o fa-2x"></i></a>
</div>
<div class="tagy">
<?php
foreach($tagy as $tag) {
$variable= Tags::where('id','=',$tag->tagID)->orderBy('name')->first();
echo "<a class='hashtag tag".$variable->id."'>".$variable->name." </a>";
}
?>
</div>
</div>
</div>
</div>
@endforeach
</div>`
这是我的控制器功能:
protected function index()
{
$product = Product::where('active','=',1)->orderBy('date')->get();
$tagy = Tags::orderBy('name')->get();
return View::make('uvod',['product' => $product, 'tags' => $tagy]);
}
我在Product Class和ProductTag Class之间建立了一对多的关系 - 这就是fucntion标签();
你能以某种方式帮助我优化代码(查询)吗?我想尽可能只使用@foreach函数一次 - 当我删除主要内部的foreach函数时,页面速度显着提高。
非常感谢您提供任何帮助:)