Eloquent 一对多关系的错误

Posted

技术标签:

【中文标题】Eloquent 一对多关系的错误【英文标题】:Error with Eloquent one to many relationship 【发布时间】:2018-11-19 02:03:04 【问题描述】:

一对多模型存在问题。我知道要访问一个 1 到多个,需要迭代一个 foreach 循环。我这样做并得到空白。

物品模型

class Item extends Model


protected $table = 'items';
public function offers()
    return $this->hasMany('App\Offer','listing_id');

报价模式

class Offer extends Model

    protected $table = 'offers';

    public function item()
        return $this->belongsTo('App\Item','listing_id');
    

物品控制器:

public function index()

    $user_id = auth()->user()->id;

    $listings = Item::with('offers')->where('user_id','1')->paginate(2);;
    return view('user.dashboard')->with('listings',$listings);

查看:

@foreach ($listings as $listing)
    listing->offer_price
@endforeach

所以我试图通过 listing->offer_price 从报价表中引用一个值,但视图中没有显示任何内容 - 空白?每个项目都有多个报价

【问题讨论】:

【参考方案1】:

你需要两个循环:

@foreach ($listings as $listing)
    @foreach ($listing->offers as $offer)
         $offer->price 
    @endforeach
@endforeach

【讨论】:

以上是关于Eloquent 一对多关系的错误的主要内容,如果未能解决你的问题,请参考以下文章

laravel eloquent 中的一对多关系

Laravel Eloquent 一对多关系

在 Eloquent 中嵌套一对多关系

Laravel5.6 Eloquent ORM 关联关系,一对一和一对多

在 ORM(Eloquent)中,具有 Genre 的 Book 是一对多关系吗?

Eloquent中一对多关系表的分组和总和