Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

PoblTech's avatar

Eloquent query on a belongsToMany relation

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

0 likes
1 reply
tykus's avatar
$resources->services()
	-> //...

Please or to participate in this conversation.