Level 104
$resources->services()
-> //...
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello!
trying to run a query on the result of a belongsToMany relation..
This query runs fine and return all results of my 'services'
return DB::table('services')
->select('id', 'Name', 'Address1', 'lat', 'lng', 'Postcode',
DB::raw('3959 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) AS distance'))
->having('distance', '<', '?')
->orderBy('distance')
->take(50)
->setBindings([$lat, $lng, $lat, $radius])
->get();
But I don;t want all services. I want the result of a belongsToMany to be calculated - im my head it would be something like this.
$resources->services
->select('id', 'Name', 'Address1', 'lat', 'lng', 'Postcode',
DB::raw('3959 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) AS distance'))
->having('distance', '<', '?')
->orderBy('distance')
->take(50)
->setBindings([$lat, $lng, $lat, $radius])
->get();
Or is there a way to add the relation into the query itself? Hope this makes sense!!
Thanks
Please or to participate in this conversation.