php - 如何根据 "enum"列获取分类的 laravel Eloquent 结果并将其显示在一页中?

标签 php mysql laravel eloquent laravel-blade

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

有一个users表:

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

status 列是 enum,可以有 3 个不同的值:deadsickhealthy

现在我想在一页中显示所有用户: 死亡用户位于顶部,生病用户位于中间,健康用户位于底部!

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

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

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

更新:

我正在寻找查询性能。

最佳答案

您需要使用groupBy功能

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

结果会是这样的

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

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

$users['dead'];

关于php - 如何根据 "enum"列获取分类的 laravel Eloquent 结果并将其显示在一页中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931613/

相关文章:

php - 如果抛出异常,Laravel 数据库事务会发生什么?

php - 从作业表中删除时 Laravel 队列死锁

php - 如何循环遍历两个不同的表?

javascript - 在 yii 中使用 ajax 将变量从 javascript 传递到 PHP

javascript - 复选框输入的 bool 值

出租车服务的 MySQL 数据库设计,需要建议

javascript - 不允许使用 Codeigniter/PHP(405 错误)在 jQuery Blueimp FileUpload 上删除方法?

mysql - 对于这种情况,我应该在 SQL 中使用嵌套选择还是创建临时表?

mysql - 在选择中选择查询

Laravel 5.3 - 单个页面上的多个分页不起作用