在Laravel的不同栏中按日期排序

友人

我似乎无法在Laravel 7中按月订购。我对月,日,年和时间使用不同的列,而不是按月订购,而是按字母顺序订购月。

预期结果:一月,二月,三月,四月

实际结果:四月,二月,一月,三月

这是我的代码:

$ledgers = Ledger::orderBy('month', 'DESC')
            ->orderBy('day', 'DESC')
            ->orderBy('year', 'DESC')
            ->orderBy('time', 'DESC')
            ->where('user_id', auth()->user()->id)
            ->paginate(8);
OMR

首先:我必须说,您应该将日期信息存储在datetime列中的数据库中,就像Tim Lewis在评论中所说的那样。

您可以按任何方式使用按字段排序,这种排序会使结果根据您提供的字段排序...

$ledgers = Ledger::orderByRaw('FIELD(month,'January','February','March','May', 'June','July','August','September','October','November','December')')
            ->orderBy('day', 'DESC')
            ->orderBy('year', 'DESC')
            ->orderBy('time', 'DESC')
            ->where('user_id', auth()->user()->id)
            ->paginate(8);

请参阅:

https://stackoverflow.com/a/9378709/10573560

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章