从'获取项目。在雄辩的查询和显示到刀片

时间:2016-11-23 15:15:51

标签: php laravel eloquent laravel-5.3

所以我有这个雄辩的查询

$categories = categories::all();
foreach($categories as $c):
    $c->items = item_categories::where('cat_id',$c->cat_id)->with('item')->with('item.item_images')->get();
endforeach;

在我的刀片中,我可以显示这部分

with('item')

喜欢做

@foreach($categories as $c)
    @foreach($c->items as $i)
        {{ $i->item->item_name }}
    @endforeach
@endforeach

如何从这部分检索数据?

with('item.item_images')

我试过

@foreach($categories as $c)
    @foreach($c->items as $i)
        {{ $i->item->item->item_images->image_name }}
    @endforeach
@endforeach

但它给了我错误

  

尝试获取非对象的属性

任何想法,请帮忙吗?

这里的'类别'模型

class categories extends Model
{
    protected $table = 'categories';
    protected $primaryKey = 'cat_id';

    public function item_category(){
        return $this->belongsTo('App\item_categories','cat_id','cat_id');
    }

}

和' item_categories'模型

class item_categories extends Model{

    protected $table = "item_categories";

    public function item(){
        return $this->belongsTo('App\items','item_id','item_id');
    }
    public function category(){
        return $this->hasOne('App\categories','cat_id','cat_id');
    }
}

和'项目'模型

class items extends Model
{
    protected $table = 'items';
    protected $primaryKey = 'item_id';

    public function item_images(){
        return $this->hasMany('App\item_images','item_id','item_id');
    }
    public function item_categories(){
        return $this->hasMany('App\item_categories','item_id','item_id');
    }
}

2 个答案:

答案 0 :(得分:0)

你太深了。看起来item_categories有一个项目,它有一个item_image,所以你只需要像这样访问它:

{{ $i->item->item_images->image_name }}

由于每个项目都有很多item_images,您需要遍历它。

@foreach($i->item->item_images as $image)
     {{$image->image_name}}
@endforeach

答案 1 :(得分:0)

我的猜测是你的代码没问题,但是项目没有item_image。在尝试使用值之前,请检查是否检查$ i-> item-> item-> item_images是否为空