element-api icon indicating copy to clipboard operation
element-api copied to clipboard

OrderBy custom fields does not give correct results

Open TomDeSmet opened this issue 3 years ago • 2 comments

Description

I'm using Element API to load entries and my criteria includes an orderBy clause that references custom fields (a date field dateFromand a lightswitch availability). The criteria is:

[
    'section' => 'events'
    'dateTo' => [
        0 => 'or'
        1 => '>=2022-08-02'
        2 => ':empty:'
    ]
    'orderBy' => 'dateFrom ASC,availability ASC'
]

When I execute the same query in Twig I get totally differently sorted results: {% set initialItems = craft.entries.section("events").dateTo(["or", ">=2022-08-02", ":empty:"]).orderBy("dateFrom ASC,availability ASC") %}

The results from twig are correct (they are the same as when I sort by dateFrom in the index in the CP). The results from Element API don't match. When I use a default field such as postDate or title both return the correct results.

Additional info

  • Craft version: 4.2.0.2
  • PHP version: 8.1.4
  • Database driver & version: MySQL 5

TomDeSmet avatar Aug 02 '22 08:08 TomDeSmet

Hi, thanks for reaching out. I’m having trouble replicating this one. I get the same ordering in twig and via the elements api. Are you still experiencing this issue?

i-just avatar Jan 20 '23 14:01 i-just

Hi there. Yes this is still an issue. We're working on other projects for now, so maybe keep this open en if we come across this again I can hopefully provide you with more leads?

TomDeSmet avatar Jan 27 '23 15:01 TomDeSmet