Laravel 4 - 获取刀片视图中的项目图像

时间:2014-10-18 21:28:02

标签: laravel laravel-4

我是Laravel的新手并且遇到了一个noob问题。我有3个表,用户,项目,item_images。当我发布项目时,我将图像保存为item_images,其中item_id和其他输入数据保存到items表中。现在,如何在我的foreach循环中获取项目的第一个x图像?

这是我的观点

@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
    ));

}

}

提前感谢。

1 个答案:

答案 0 :(得分:0)

看起来你没有定义关系。我相信这样做会使答案比以下更简单:

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