Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

447
Views
laravel use with() , pluck() juntos

Salida de consulta

\App\Post :

 function PostMeta(){ return $this->hasMany('App\PostMeta'); }

Y mi consulta: (arrancar no funciona) -

Necesito usar menos consultas de base de datos

 $query = \App\Post ::with(array('PostMeta'=>function($query){ $query->pluck('key','value'); })); $query->get();

Necesito obtener title_en , ¡pero no puedo usar arrancar aquí!

Nueva actualización

resuelto:

 function get_PostMeta(){ // print_r($this->relations['PostMeta']); return $this->relations['PostMeta']; } $query = \App\Post::with('PostMeta')->get(); foreach ($query as $key => $post){ $post->meta = $post->get_PostMeta()->pluck('value', 'key'); }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puede hacer esto mientras está ansioso por cargar los datos, pero puede usar el método de recopilación con el mismo nombre pluck() en la vista al acceder a los datos de relación:

 {{ $post->postMeta->pluck('value', 'key') }}

En este caso, evitará el problema N+1 y obtendrá los datos en el formato que desee.

Actualizar

Dado que desea preparar datos para Vue, aquí hay un pequeño ejemplo de cómo podría iterar sobre la colección:

 foreach ($posts as $post) { $post->meta = $post->postMeta->pluck('value', 'key'); unset($post->postMeta); }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!