php - Laravel 集合 orderBy 关系列

标签 php mysql laravel eloquent

我在 Laravel 中有一对多关系:

  1. 类型
  2. 产品 - type_id、价格

如何获得 $types 按产品排序的最低价格?

示例:

  • 类型_1 具有:product_x - 10 欧元,product_y - 15 欧元
  • 类型_2 具有:产品_a - 20 欧元,产品_b - 100 欧元
  • type_3 具有:product_e - 12 欧元、product_f - 200 欧元

因此类型应按顺序排列:type_1、type_3、type_2。

我尝试过这个:

$types = $types->whereHas('products', function($q) use($order_by_price){
            $q->orderBy('price', $order_by_price);
        });

但没有成功。

我也尝试过 join(),但它以某种方式破坏了集合。可能是因为类型和产品表中的列名相同。

Here you got screenshot

最佳答案

就这么做

$type->products()->orderBy('price')->get();

Product::orderBy('price')->get();

如果您想要更详细的答案,请分享更多代码(模型、 Controller 等),以便我知道如何使用不同的模型/解决方案

关于php - Laravel 集合 orderBy 关系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55225157/

相关文章:

php - 从 XMI 生成类图

php - 在 MySQL 查询中转换 $_POST 变量

php - Mautic 安装失败

mysql - 使用 MySQL 函数返回字符串的正确语法是什么?

Mysql插入语法错误,找不到位置

php - 在 laravel 中对齐 Bootstrap 网格

javascript - 将 laravel 中的数据库值与 javascript 值进行比较

php - 如何为两个用户(教师、学生)创建数据透视表,访问分配给并注册到使用 Laravel 的同一类(class)表

javascript - 单击更新按钮后,它不会转到 anchor 标记内写入的php文件?

php - 接受来自信用卡 php 的 paypal 付款