我是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
));
}
}
提前感谢。
答案 0 :(得分:0)
看起来你没有定义关系。我相信这样做会使答案比以下更简单:
<img src="/uploads/{{
$images->filter(function($image) use( $item ) {
return $image->item_id == $item->id;
})->values()->image
}}"/>