【发布时间】:2020-10-19 13:51:55
【问题描述】:
我有一个 products 表和一个 product_pictures 表,其中一个产品可以有许多图片(一对多关系)。我正在尝试显示所有产品及其所有详细信息(例如名称、数量等),并且仅显示其中一张产品图片。这是我迄今为止尝试过的。
$products = Product::->join('product_pictures', 'products.product_id', '=', 'product_pictures.product_id')
->select('product_name', 'quantity', 'products.product_id', 'product_picture_id')
->groupBy('products.product_id')
->get();
我也尝试过使用distinct,但没有成功。有什么建议吗?
【问题讨论】:
-
事实如果您使用
get(),您将获得与查询匹配的所有条目...如果您使用first(),您将只获得一个与您的查询匹配的条目(第一个) .当您列出产品时,您可以使用: $product->product_pictures()->first();但是您需要在 Product 模型中设置关系 -
我觉得
hasOne产品和图片的关系可以解决你的问题..
标签: php mysql laravel eloquent laravel-query-builder