Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

570
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda