我似乎无法在Laravel 7中按月订购。我对月,日,年和时间使用不同的列,而不是按月订购,而是按字母顺序订购月。
预期结果:一月,二月,三月,四月
实际结果:四月,二月,一月,三月
这是我的代码:
$ledgers = Ledger::orderBy('month', 'DESC')
->orderBy('day', 'DESC')
->orderBy('year', 'DESC')
->orderBy('time', 'DESC')
->where('user_id', auth()->user()->id)
->paginate(8);
首先:我必须说,您应该将日期信息存储在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);
请参阅:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句