2014-10-18 119 views
0

我是Laravel的新人,並且遇到了noob問題。我有3個表格,用戶,項目,item_images。當我發佈一個項目,我保存圖像item_images與item_id和其他輸入數據到項目表。現在,如何獲得我的foreach循環中的項目的第一個x圖像?Laravel 4 - 在刀片視圖中獲取圖像項目

這是我的看法

@foreach ($items as $item) 

    <div class="item"> 
     <div class="item-image"> 
      <img src="/uploads/{{ $item->image }}"/> 
     </div> 
     {{ $item->title }} 

     {{ $item->type }} 
     {{ $item->label }} 
    </div> 
@endforeach 

這是ItemImages控制器

<? class ItemImages extends Eloquent { 

    protected $fillable = array(
     'item_id', 
     'image' 
    ); 

    protected $table = 'item_images'; 

    public function item() { 
     return $this->belongsTo('Item'); 
    } 

}

的項目控制器

<? class Item extends Eloquent { 

    protected $fillable = array(
     'user_id', 
     'type', 
     'title', 
     'label' 
    ); 

    protected $table = 'items'; 

    public function item() { 
     return $this->hasMany('ItemImages'); 
    } 

}

與家用控制器

<?php class HomeController extends BaseController { 

public function home() { 

    $items = Item::all(); 
    $images = ItemImages::all(); 
    $users = User::orderByRaw("RAND()")->take(2)->get(); 

    return View::make('home', array(

     'items' => $items, 
     'users' => $users, 
     'images' => $images 
    )); 

} 

}

在此先感謝。

+0

請嘗試'$用品 - >用品 - >第一() - > id' – user2094178 2014-10-18 23:38:18

+0

謝謝。這有助於與正確的關係:) – 2014-10-19 00:32:40

+0

關係看起來正確。您應該只查詢用戶或僅查詢home方法中的項目,具體取決於您想要迭代的內容。 – user2094178 2014-10-19 01:23:08

回答

0

看起來你沒有定義關係。我相信這樣做將會使答案比下面要簡單得多:

<img src="/uploads/{{ 
    $images->filter(function($image) use($item) { 
     return $image->item_id == $item->id; 
    })->values()->image 
}}"/> 
+0

我有,但我認爲他們是錯的。我想我需要花上幾個小時的關係。感謝您的回答。 – 2014-10-19 00:28:10