Laravel 5 Laravel通过数据透视表检索相关模型

Laravel 5 Laravel通过数据透视表检索相关模型,laravel-5,Laravel 5,所以我对这种情况有点困惑,我现在的关系是: 用户拥有许多喜爱的 收藏夹对配方的引用模型 Favorites是一个数据透视表,但当我为给定用户检索Favorites时,如: $user->favorites 我用pivot数据得到了最喜欢的数据,但我想得到配方的字段 Recipe.php: public function favourites() { return $this->hasMany('App\Favourite'); } public function favourit

所以我对这种情况有点困惑,我现在的关系是:
用户
拥有许多
喜爱的
收藏夹对
配方的引用
模型 Favorites是一个数据透视表,但当我为给定用户检索Favorites时,如:

$user->favorites

我用pivot数据得到了最喜欢的数据,但我想得到配方的字段

Recipe.php

public function favourites()
{
    return $this->hasMany('App\Favourite');
}
public function favourites()
{
    return $this->hasMany('App\Favourite');
}
public function user()
{
    return $this->belongsTo('App\User','user_id');
}

public function recipes()
{
    return $this->belongsTo('App\Recipe','recipe_id');
}
User.php

public function favourites()
{
    return $this->hasMany('App\Favourite');
}
public function favourites()
{
    return $this->hasMany('App\Favourite');
}
public function user()
{
    return $this->belongsTo('App\User','user_id');
}

public function recipes()
{
    return $this->belongsTo('App\Recipe','recipe_id');
}
favorite.php

public function favourites()
{
    return $this->hasMany('App\Favourite');
}
public function favourites()
{
    return $this->hasMany('App\Favourite');
}
public function user()
{
    return $this->belongsTo('App\User','user_id');
}

public function recipes()
{
    return $this->belongsTo('App\Recipe','recipe_id');
}
编辑根本没有问题,只需要打电话:

@foreach($user->favourites as $favourite)
    {{ $favourite->recipe->name }}
@endforeach

你需要将你的关系设置为Has Many Through,而不是Has Many

Recipe.php:

public function favourites()
{
    return $this->hasManyThrough('App\Favourite', 'App\User');
}
User.php:

public function favourites()
{
    return $this->hasManyThrough('App\Favourite', 'App\Receipe');
}
favorite.php:

public function user()
{
    return $this->hasManyThrough('App\User','App\Receipe');
}

你需要将你的关系设置为Has Many Through,而不是Has Many

Recipe.php:

public function favourites()
{
    return $this->hasManyThrough('App\Favourite', 'App\User');
}
User.php:

public function favourites()
{
    return $this->hasManyThrough('App\Favourite', 'App\Receipe');
}
favorite.php:

public function user()
{
    return $this->hasManyThrough('App\User','App\Receipe');
}

我让它工作了…我真的很累。我会试试你的解决办法我已经开始工作了…我真的很累了。我试试你的解决办法