如何根据“枚举”列获得分类的 laravel 雄辩结果并在一页中显示?

Posted

技术标签:

【中文标题】如何根据“枚举”列获得分类的 laravel 雄辩结果并在一页中显示?【英文标题】:How to get categorized laravel eloquent results based on "enum" column and show them in one page? 【发布时间】:2018-08-02 13:13:54 【问题描述】:

为了简单起见,我将解释一个伪情况:

有一个users 表:

id  |  name  |  status
-----------------------

status 列是 enum,可以有 3 个不同的值:dead,sick,healthy

现在我想在一页中显示所有usersdead 用户在顶部,sick 用户在中间,healthy 用户在底部!

我必须执行三个查询吗?并一一传过来查看? 像这样:

$dead = User::where('status','dead')->get();
$sick = User::where('status','sick')->get();
$healthy = User::where('status','healthy')->get();

或者有更好的方法吗?如果有 10 个状态怎么办?还是100?

更新:

我正在寻找查询性能。

【问题讨论】:

那么,如果有很多结果,您是否使用分页? @SagarGautam,其实我没想到!但在我的情况下,结果用于幻灯片,并不多!对于分页,我认为最好将每个页面发送到不同的页面。 【参考方案1】:

你需要使用groupBy函数

$users = User::get()->groupBy('status');

结果会是这样的

[
    'dead' => [
        //items of dead type
    ],
    'healthy' => [
                   //items of healthy type
    ],
    'sick' => [
                   //items of sick type
    ]
]

您可以访问以下类型的数据:

$users['dead'];

【讨论】:

那么如何使用刀片文件中分离出来的结果呢? 谢谢。我需要将它们转换为数组吗?让我试试 其实不会的,没有toArray()祝你好运就会给你群里收藏

以上是关于如何根据“枚举”列获得分类的 laravel 雄辩结果并在一页中显示?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用雄辩的 Laravel 获得两个表的总和和组响应?

Laravel雄辩查询与相关表的总和

php Laravel雄辩获得最新的相关模型

如何在雄辩的 Laravel 中使用名称查找条目?

无法使用 Laravel 雄辩模型更新 json 列

在laravel中以雄辩的关系获取错误列的数据