Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

244
Vistas
Laravel tiene muchas relaciones consulta complicada

Tengo dos modelos:

publicaciones

 class posts extends Eloquent { public $timestamps = false; protected $table = 'links'; public function commented() { return $this->hasMany('App\Models\comments','post_id')->where('reply',true); } }

comentarios

 class comments extends Eloquent { public $timestamps = false; protected $table = 'comments'; }

Y los datos en las tablas son así:

publicar datos

 { "_id" : ObjectId("58837a559caf2fc968adc64d"), "post_title" :'xyz' } { "_id" : ObjectId("58837a559c6as77777as"), "post_title" :'abc' }

datos de comentarios

 { "_id" : ObjectId("58837a559caf2fa6a8s0v0z"), "post_id" :'58837a559caf2fc968adc64d' "reply":true, "comment":'1st comment' } { "_id" : ObjectId("58837a55z7asd09zx865v9"), "post_id" :'58837a559c6as77777as', "reply":false, "comment":'comment' } { "_id" : ObjectId("58837a559caf2fa6a8s0v0z"), "post_id" :'58837a559caf2fc968adc64d' "reply":true, "comment":'2nd comment' }

Ahora quiero obtener todas las publicaciones que contienen un recuento de comentarios (que responden = verdadero) es mayor que 0. Gracias.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Una actualización de la respuesta de Alexey Mezenin.

 Post::has('commented')->whereHas('comments', function($query) { $query->where('reply', '=', true); })->get();
over 4 years ago · Santiago Trujillo Denunciar

0

Usa el método has() :

 Post::has('commented')->get();

Esto obtendrá todas las publicaciones que tengan al menos una relación commented .

over 4 years ago · Santiago Trujillo Denunciar

0

Prueba esto. Obtenga todas las publicaciones y luego acceda a cada publicación para buscar la única vez que tenga la respuesta verdadera:

 $posts = Post::get() $array = ''; foreach ($posts as $post) { if ($post->commented->reply == True) { $record = $post; $array[] = $record; } } return $array;
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda