とにかくCraft 3でCraft Entryクエリの検索を拡張する

私は手動で正しい結果を得るためにSQL呼び出しをしなければならなかったが、私はCraft
3でこれを達成するための巧妙な方法があることを望んでいた。

$query = ( new Query() )
->select('craft_content.title, craft_entries.id, ( 3959 * acos( cos( radians(' . $latitude . ') ) * cos( radians( field_clubLatitude ) ) * 
            cos( radians( field_clubLongitude ) - radians(' . $longitude . ') ) + sin( radians(' . $latitude . ') ) * 
            sin( radians( field_clubLatitude ) ) ) ) AS distance')
->from( 'craft_elements' )
->where('field_clubLongitude != "" and field_clubLatitude != ""')
->join( 'LEFT JOIN', 'craft_entries', 'craft_elements.id = craft_entries.id' )
->join( 'LEFT JOIN', 'craft_content', 'craft_elements.id = craft_content.elementId' )
->andHaving('distance < 100')
->orderBy('distance')
->limit(3);
ベストアンサー

生成される要素クエリにアクセスする「適切な」方法は、https://github.com/ethercreative/simplemap/blob/v3/src/services/MapService.php

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です