在Laravel 4中优化Eloquent查询

时间:2014-10-21 06:10:53

标签: php performance optimization laravel-4 eloquent

我刚刚开始使用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函数时,页面速度显着提高。

非常感谢您提供任何帮助:)

0 个答案:

没有答案