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

569
Vistas
Límite de tamaño al pasar una variable a Mail:send laravel

Estoy tratando de pasar el resultado de una consulta a una vista, pero sigo recibiendo un error: Se excedió el tiempo máximo de ejecución de 30 segundos . Estoy pasando objetos más pequeños y funciona bien, pero se interrumpe cuando paso el resultado de $monthlyBidStatment a través de. Si hay una mejor manera de hacer esto, realmente agradecería cualquier consejo. Gracias por adelantado.

 public function sendEmailInvoice(Request $request) { $invoice = Invoice::where('id', '=', $request->invoiceId)->first(); $startDate = $invoice->start_billing_date; $startDateSql = date("Ymd", strtotime($startDate)); $endDate = $invoice->end_billing_date; $endDateSql = date("Ymd", strtotime($endDate)); $affiliate = AffiliateDetail::where('id', '=', $invoice->affiliate_detail_id)->first(); $monthlyBidStatment = BidTracker::where('affiliate_detail_id', '=', $affiliate->id)->whereBetween('created_at', [$startDateSql, $endDateSql])->get(); // LOG::info(gettype($monthlyBidStatment)); Mail::send('pdf.invoicePDF', [ 'oAffiliate' => $affiliate, 'oInvoice' => $invoice, 'bids' => $monthlyBidStatment, 'showBreadcrumb' => false ], function ($m) use ($affiliate, $invoice, $monthlyBidStatment) { $m->from(env('APP_EMAIL'), env('APP_NAME')); $m->to($affiliate->info_billing_email, $affiliate->info_company_name)->subject(env('APP_NAME') . ' Invoice'); $pdf = PDF::loadView('pdf.invoicePDF', [ 'oAffiliate' => $affiliate, 'oInvoice' => $invoice, 'bids' => $monthlyBidStatment, 'showBreadcrumb' => false ]); $m->attachData($pdf->output(), 'invoice.pdf'); }); $request->session()->flash('message', 'Successfully sent email invoice'); return array( 'status' => 'ok' ); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Revisa la siguiente línea:

 $invoice = Invoice::where('id', '=', $request->invoiceId)->first(); // Its a collection object.

Todos los conjuntos de resultados múltiples devueltos por Eloquent son instancias del objeto Illuminate\Database\Eloquent\Collection, incluidos los resultados recuperados a través del método get o a los que se accede a través de una relación. El objeto de la colección Eloquent amplía la colección base de Laravel, por lo que naturalmente hereda docenas de métodos utilizados para trabajar con fluidez con la matriz subyacente de modelos Eloquent.

En términos breves, podemos decir que un objeto de colección contiene muchas cosas, pero en su caso solo desea la parte de datos. Entonces, en lugar de pasar el objeto de colección completo, conviértalo en una matriz iterándolo con la columna requerida y pase esa matriz a la plantilla de correo electrónico. Eliminará los gastos generales.

Ex:

 $data = array(); $users = App\User::where('active', 1)->get(); foreach ($users as $user) { $data[] = $user->name; } // Use $data where required

Referencia

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