How can I do this with Eloquent Relationship(我怎样才能用雄辩的关系做到这一点呢?)
本文介绍了我怎样才能用雄辩的关系做到这一点呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在处理一个在线商店项目,我想创建添加到收藏系统,以便用户将他们喜欢的产品添加到他们的收藏列表中。
所以我创建了一个名为favourite_products
的表,其内容如下:
所以usr_id
代表用户id,prd_id
代表产品id。
这里是User.php
型号:
public function favourites()
{
return $this->belongsToMany(Product::class, 'favourite_products', 'usr_id', 'prd_id')->withTimestamps();
}
这是Product.php
型号:
public function favouritees()
{
return $this->belongsToMany(User::class, 'favourite_products', 'prd_id', 'usr_id');
}
现在我想从此表中获取所有数据。
因此我尝试将此内容添加到控制器:
public function index()
{
$favouriteProducts = FavouriteProduct::all();
return view('admin.shop.favourites.all', compact('favouriteProducts'));
}
然后在刀片中:
@foreach($favouriteProducts as $fav_pro)
@php
$member_info = AppUser::where($fav_pro->usr_id)->first();
$product_info = AppShopProduct::find($fav_pro->prd_id);
@endphp
<tr class="closest-tr">
<td>{{ ++$menuCounter }}</td>
<td>{{ $member_info->usr_name }}</td>
<td>{{ $product_info->prd_name }}</td>
</tr>
@endforeach
但是我想知道,我如何通过User和Product Models关系检索usr_name
&;prd_name
?因此,我不需要在视图中添加Model name并从中获取数据.
我在控制器上尝试了这两个,但都是错误的:
Product::whereHas('favouritees')->get(); // if two different users add same product, it returns only one of them
User::whereHas('favourites')->get(); // if a user add different products, it returns only one of them for the user
所以问题是,我如何才能在具有User或Product多对多关系的表中显示favourite_products
的所有结果?
推荐答案
若要获取所有数据(产品和喜欢该产品的用户),请获取与其相关的所有产品
$products = Product::whereHas('favouritees')->with('favouritees')->get();
// if two different users add same product, it returns only one of them but it will have two users in the relation favouritees
然后您可以在刀片中循环它们
@foreach($products as $product)
@foreach($product->favouritees as $user)
<tr class="closest-tr">
<td>{{ ++$menuCounter }}</td>
<td>{{ $user->usr_name }}</td>
<td>{{ $product->prd_name }}</td>
</tr>
@endforeach
@endforeach
这篇关于我怎样才能用雄辩的关系做到这一点呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:我怎样才能用雄辩的关系做到这一点呢?
基础教程推荐
猜你喜欢
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01