es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Laravel: Error de sintaxis o violación de acceso: tickets.id no está en GROUP BY (SQL: select *,

public function ScopeDistance($query, $from_latitude, $from_longitude, $distance)
{
$raw = DB::raw(‘ROUND ( ( 6371 * acos( cos( radians(‘ . $from_latitude . ‘) ) * cos( radians( lat ) ) * cos( radians( lng ) – radians(‘ . $from_longitude . ‘) ) + sin( radians(‘ . $from_latitude . ‘) ) * sin( radians( lat ) ) ) ) ) AS distance’);
return $query->select(‘*’)->addSelect($raw)->orderBy(‘distance’, ‘ASC’)->groupBy(‘distance’)->having(‘distance’, ‘<=’, $distance);
}

Estoy tratando de encontrar los datos más cercanos a partir de la latitud y longitud. ¿Recibo este error? ¿Está mal la solución?

$userData = UserLocation::whereUserId(3)->first();
$max_distance = 50;
$nearByTickets = Ticket::with([‘brand’, ‘appliance’])->distance($userData->lat, $userData->lng, $max_distance)->get();
return success($nearByTickets, __(‘tickets neared to you is’));

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error no se proporciona en la pregunta, por lo que no se puede determinar si la solución está incorrecta. Sin embargo, el fragmento de código proporcionado es un “scope” del Laravel Query Builder que calcula la distancia entre dos puntos de latitud y longitud utilizando la fórmula de Haversine y ordena los resultados por distancia. Parece que funciona correctamente. El error podría estar relacionado con el uso del “scope” en el código base más grande.

Comments are closed.