Laravel 在快速加载时获取错误

Laravel 在快速加载时获取错误,laravel,eloquent,laravel-5.2,Laravel,Eloquent,Laravel 5.2,我渴望像这样载入画廊 $user = User::where('username', $username)->first(); $favorites = Favorite::with('gallery')->where('user_id', $user->id)->get(); dd($favorites->gallery); 并获取此错误消息: Undefined property: Illuminate\Database\Elo

我渴望像这样载入画廊

$user = User::where('username', $username)->first();
        $favorites = Favorite::with('gallery')->where('user_id', $user->id)->get();
        dd($favorites->gallery);
并获取此错误消息:

Undefined property: Illuminate\Database\Eloquent\Collection::$gallery
我最喜欢的课程是这样的:

class Favorite extends Model
{
    protected $table = 'favorites';
    public function user(){
        return $this->belongsTo(User::class, 'user_id');
    }
    public function gallery(){
        return $this->belongsTo(Gallery::class, 'gallery_id');
    }
}
但是如果我这样做

$user = User::where('username', $username)->first();
        $favorites = Favorite::with('gallery')->where('user_id', $user->id)->get();
        dd($favorites);

然后我得到这个

$favorites
是一个集合,您无法获得集合的属性

您需要使用
first()
从集合中获取第一个对象:

$favorites = Favorite::with('gallery')->where('user_id', $user->id)->first();
或迭代集合并获取所有对象:

foreach ($favorites as $favorite) {
    echo $favorite->gallery;
}