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

571
Views
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 answers
Answer question

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 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!