php - 拉拉维尔。如何按一个字段排序但首先获取具有另一个字段特定值的项目?

标签 php laravel eloquent

我有一个包含条目的数据库。每个条目都有开始日期和状态字段。我想要做的是按开始日期排序条目(完成),但首先显示状态为 0 的条目,然后显示其他条目(也按开始日期排序)我也在分页数据。现在按日期排序和分页很容易做到,但不知道如何做其他事情。

最佳答案

以下构建显示 state=0首先,然后按日期降序排列。您可以调用->get()->paginate() .

$builder = Model::where('something', '>', 'value')
    ->orderByRaw("IF(`state` = 0, 1, 0)  DESC")
    ->orderBy('date', 'DESC');

return $builder->paginate(15);

通过 date ASC 订购第一批和其他的 date DESC :
$builder = Model::where('something', '>', 'value')
    ->orderByRaw("IF(`state` = 0, 1, 0)  DESC")
    ->orderByRaw("IF(`state` = 0, date, 1)  ASC")
    ->orderByRaw("IF(`state` = 0, 1, date)  DESC");

我只是将订购分为 3 个不同的条件。

关于php - 拉拉维尔。如何按一个字段排序但首先获取具有另一个字段特定值的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42124849/

相关文章:

php - 函数参数变量的命名约定?

Laravel Blade View 未显示对其所做的更改

php - 脚本@php artisan package :discover handling the post-autoload-dump event returned with error code 255

Laravel 访问模型属性

mysql - 根据列值连接 3 个表 - Laravel

php - 对象到字符串,PHP 中的唯一键

php - 将包含 mysql 函数的 mysql 查询传递给 PHP mysql_query

laravel - Laravel-从上传的文件中获取大小

php - Laravel eloquent where 方法给出不区分大小写

php - 无法在控制台请求中从 ServiceLocator 获取 ViewRenderer 实例