Last Updated: 2021-05-16
I had the following code for finding
advisor entities within a certain distance of the
postcode the user gave us:
<? php $geocodeResults = Geocoder::geocodeAddress($postcode); // We do not filter on the language provided in the // reverseAuctionRequest OR private/business tax types. This is because // most advisors were created by admin and do not have language // information available return Advisor::subscribed()->orderByDistance( $geocodeResults["latitude"], $geocodeResults["longitude"] )->limit($numberToContact)->get();
What I had not anticipated, but what actually happened, was users gave us
postcodes that do not exist. In this case,
end up as null, which breaks the
orderByDistance method, since it expects
numerical lat/long arguments.
To fix this, it would have needed to fail gracefully if this was null.
Whenever their is user input - and especially if fed into another system (e.g. geocoding), test what happens if the input is bogus (e.g. a fake address) – and handle it gracefully.