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;
}