Skip to content

Craft 5 - query with location #392

@abm-schuh

Description

@abm-schuh

Description

I try to query some entries by lat/lng
My Field handle is "addressCoordinates"

{% set haendler = craft.entries.section("haendler").addressCoordinates({
    location: { 
        lat: 52.3073549, 
        lng: 8.6699708 
    }, 
    radius: 50,
    unit: 'km'
}).orderBy('distance asc').all() %}

Output is:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'distance' in 'order clause'
The SQL being executed was: SELECT `elements`.`id`, `elements`.`canonicalId`, `elements`.`fieldLayoutId`, `elements`.`uid`, `elements`.`enabled`, `elements`.`archived`, `elements`.`dateLastMerged`, `elements`.`dateCreated`, `elements`.`dateUpdated`, `elements_sites`.`id` AS `siteSettingsId`, `elements_sites`.`siteId`, `elements_sites`.`title`, `elements_sites`.`slug`, `elements_sites`.`uri`, `elements_sites`.`content`, `elements_sites`.`enabled` AS `enabledForSite`, `entries`.`sectionId`, `entries`.`fieldId`, `entries`.`primaryOwnerId`, `entries`.`typeId`, `entries`.`postDate`, `entries`.`expiryDate`
FROM (SELECT `elements`.`id` AS `elementsId`, `elements_sites`.`id` AS `siteSettingsId`
FROM `elements` `elements`
INNER JOIN `entries` `entries` ON `entries`.`id` = `elements`.`id`
INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`elementId` = `elements`.`id`
WHERE (`entries`.`sectionId`=10) AND (`elements_sites`.`siteId`=1) AND ((`elements_sites`.`content`->>'$.\"5691a8fb-651e-437b-b392-e568ca1955d2\"') IN (50, 'km')) AND (((`elements`.`enabled`=TRUE) AND (`elements_sites`.`enabled`=TRUE)) AND (`entries`.`postDate` <= '2024-06-07 09:31:59') AND ((`entries`.`expiryDate` IS NULL) OR (`entries`.`expiryDate` > '2024-06-07 09:31:59'))) AND (`elements`.`archived`=FALSE) AND (`elements`.`dateDeleted` IS NULL) AND (`elements`.`draftId` IS NULL) AND (`elements`.`revisionId` IS NULL)
ORDER BY `distance`) `subquery`
INNER JOIN `elements` `elements` ON `elements`.`id` = `subquery`.`elementsId`
INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`id` = `subquery`.`siteSettingsId`
INNER JOIN `entries` `entries` ON `entries`.`id` = `subquery`.`elementsId`
ORDER BY `distance`
Error Info: Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'distance' in 'order clause'
)

Steps to reproduce

  1. Craft 5
  2. Query entries by lat/lng

Additional info

  • Craft version: 5.1.8
  • Maps version: 5.0.0
  • PHP version: 8.3
  • Database driver & version: MySQL 8.1.0
  • Other Plugins: ether/seo, craft commerce, feed-me

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions