laravel - Laravel 6:在一对多关系上选择不同
问题描述
我试图为每个产品获取一张图片,但如果产品有 3 张图片,它会返回一个产品的 3 个实例,其中包含不同的图片
mobimages
idimage | idproduto | prodimage |
1 | 2 | xxxxx.png |
2 | 2 | yyyy.png |
3 | 2 | zzzzz.png |
produtos
id | marca | modelo |
1 | Huawei | P30 |
2 | Samsung | A20 |
3 | Xiaomi | Note7 |
控制器
$produtos = DB::table('produtos')
->join('mobimages', 'mobimages.idproduto', '=', 'produtos.id')
->select('produtos.*', 'mobimages.prodimage')->distinct('mobimages.prodimage')->get();
我想要以下结果
id | marca | modelo | prodimage |
2 |samsung|A20 | xxxx.png |
不是
id | marca | modelo | prodimage |
2 |samsung|A20 | xxxx.png |
2 |samsung|A20 | yyyy.png |
2 |samsung|A20 | zzzzz.png |
解决方案
利用groupBy
$produtos = DB::table('produtos')
->join('mobimages', 'mobimages.idproduto', '=', 'produtos.id')
->select('produtos.*', 'mobimages.prodimage')
->groupBy('produtos.id')
->get();
更改 config/databases.php -> mysql 数组我将 strict => true 更改为 strict => false ,你会得到答案
推荐阅读
- python - 如何使用 Python 中的 Pillow 在图片上添加单词并将其中一个加粗?
- reactjs - 尝试将部署推送到 Firebase 托管合并到主分支并给我一个错误:进程完成,退出代码 254
- angular - Angular,woocommerce,wordpress JWT AUTH 登录错误,不正确的 200 OK 来自服务器的响应可能破坏登录尝试
- javascript - 从 json javascript 获取数据
- opengl - 如何允许用户为 openGL 软件自定义着色器
- python - 如何解开 pyparsing 辅助函数的结果?
- intellij-idea - Intellij 错误地突出显示括号对?
- python - 如何从递归字典值中填充数据框?
- mysql - 因为我们在新的一年,MySQL 没有返回上个月的数据
- ajax - 在 extjs 中加载应用程序之前未收到 Ajax 响应