laravel - 如何根据特定字段对 Laravel Eloquent 查询中的数据进行排序
问题描述
我有这个雄辩的查询:
$events = Product::forCard()->latest()->take(setting('storefront_recent_products_section_total_products', 10))->get();
我想按升序对这条记录进行排序start_event
。我试图这样做,但我遇到了一些问题,因为数据来自多个表。
Array
(
[0] => Array
(
[price] => Modules\Support\Money Object
(
[amount:Modules\Support\Money:private] =>
[currency:Modules\Support\Money:private] => USD
)
[special_price] =>
[selling_price] => Modules\Support\Money Object
(
[amount:Modules\Support\Money:private] =>
[currency:Modules\Support\Money:private] => USD
)
[special_price_start] =>
[special_price_end] =>
[options_count] => 0
[id] => 40
[slug] => -YvHm5m1m
[in_stock] => 1
[new_from] =>
[new_to] =>
[name] => Race4
[description] =>
[organizer] =>
[short_description] =>
[address] =>
[city] => vehari
[state] => pakistan
[zip_code] =>
[lat] =>
[lng] =>
[start_event] => 2020-01-13 00:00:00
[end_event] =>
[translations] => Array
(
[0] => Array
(
[id] => 33
[product_id] => 40
[locale] => en
[name] => Race4
[city] => vehari
[state] => pakistan
[start_event] => 2020-01-13 00:00:00
)
)
[files] => Array
(
)
)
解决方案
您应该能够订购与此类似的东西:
$events = Product::forCard()->latest()
->take(setting('storefront_recent_products_section_total_products', 10))
->orderBy('start_event', 'asc');
基本上,您可以使用该方法来判断orderBy()
应使用哪一列进行排序以及排序的类型,在本例中为升序。
推荐阅读
- java - 更改android应用程序自适应drawable?
- javascript - 如何将数据从 Vue.js 传递到 Blade 视图?
- vim - vi/vim remap 或 unmap 内置命令 - 可视模式下的 u 键
- python - 如何自定义 django-ratelimit 403 禁止页面?
- javascript - javascript中如何实现字符串和连接?
- android - WorkManager OneTimeWorkRequest 不工作
- swift - 是否可以根据条件集完全覆盖一行代码?
- appcelerator - 无法通过 CLI 或 Appcelerator Studio 使用 appcelerator 创建项目
- python-3.x - 如何修复 Python3.7.1 中的“No module named 'encodings'”?
- python-3.x - 带有tkinter的小代码在mac上不显示任何窗口