php - Laravel:在一对多关系上选择不同
问题描述
所以我的两个模型之间有这种关系
产品.php
public function photos()
{
return $this->hasMany('App\Photo');
}
照片.php
public function product()
{
return $this->belongsTo('App\Product');
}
我想要做的是为每个产品只获取一张照片。这是我的查询
$my_ads = DB::table('products as p')
->join('photos as pic','p.id','=','pic.product_id')
->select(DB::RAW('DISTINCT(pic.product_id)'),'p.*','pic.file_path')
->get();
我在这个查询中得到的结果是重复的。如果我的第一个产品有五张照片,那么该集合将有 5 个具有不同照片的相同产品实例。
我如何才能为每个产品实现这一点,我只能有一张照片?非常感谢
解决方案
你为什么不以 Eloquent 的方式这样做呢?
App\Product::with('photos')->get();
这将检索您的所有产品及其照片,并且不会重复任何产品。
推荐阅读
- mysql - 在nodejs的query()函数中传递多个查询
- javascript - 如何在 javascript 中读取 DateTime 类型的 ViewData 值
- laravel - 获取两个日期之间的日期并返回 Laravel 中可用的资源
- azure - 天蓝色 b2c okta saml 集成
- django - 我可以在我的模板中使用管理员样式的内联吗?
- angular - 从应用程序到库提供 function()
- django - Django:嵌套查询多对多关系上的聚合函数
- c# - 使用 OpenXML 理解 ListParagraph Number
- flutter - 错误的 otp 输入在颤动中重置会话 AWS 电话身份验证
- java - REST 模板的 postForObject() 和 exchange() 方法返回列表对象的空值