gpt4 book ai didi

php - 将具有匹配 ID 的表中的数据获取到 Laravel 中的数据透视表

转载 作者:行者123 更新时间:2023-11-28 23:22:14 24 4
gpt4 key购买 nike

我有 3 个表,用户表、图像表和收藏夹表,它的工作方式有点像数据透视表,因为它只有 ID、image_id 和 user_id。

在我的用户模型中,我有:

public function FavoritedByMe() {
return $this->hasMany('CommendMe\Models\Favorite', 'user_id');
}

在我的收藏夹 Controller 中,我有:

public function getFavorites($username)  {
$user = User::where('username', $username)->first();

return view('user.favorites')
->with('user', $user);
}

如果我想获取我收藏的所有图片的 ID,这就很好用了:

@foreach ($user->FavoritedByMe as $favorite)
{{ $favorite->image_id }}
@endforeach

但是,我真正希望能够返回带有图像本身的 View 。像这样的东西:

$favImages = Images::where('id', $user->FavoritedByMe->image_id);

return view('user.favorites')
->with('user', $user)
->with('favImages', $favImages);

现在显然这行不通,并且会返回错误:

ErrorException in FavoritesController.php line 54: Undefined property: Illuminate\Database\Eloquent\Collection::$image_id

但也许某种 Eloquent 关系会?我试过让这些工作正常,但它们就是不会在我的脑海中“咔嗒”一声。

我怎样才能使它工作?

提前致谢!

最佳答案

在您的Favorite 模型中添加此关系:

public function image()
{
return $this->belongsTo('YourImageModel');
}

然后你可以像这样访问图像:

@foreach ($user->FavoritedImages as $favorite)
{{ $favorite->image->yourProperty }}
@endforeach

在 laravel 的最佳实践中,你应该调用你的 FavoriteByMe 关系 favorites 因为它显然与用户相关。

关于php - 将具有匹配 ID 的表中的数据获取到 Laravel 中的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41059388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com