Laravel 4'te bir kapanışa veri aktarımı


108

Laravel 4'te Mail Class'ı kullanmaya çalışıyorum ve değişkenleri $ m nesnesine geçiremiyorum.

$ team nesnesi, belagatli olarak DB'den aldığım verileri içeriyor.

Mail::send('emails.report', $data, function($m)
{
   $m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
   $m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
   $m->subject('Monthly Report');
   $m->from('info@website.com', 'Sender');
});

Nedense $ team nesnesinin kullanılamadığı bir hata alıyorum. Sanırım dürbünle bir ilgisi var.

Herhangi bir fikir ?


Benim için tamamen aynı senaryo. Mail :: send sorunu, değişkenleri kapanışlara geçirme ve sonra buna geri dönme konusunda aramama yol açıyor. Belki de bu konudaki laravel posta belgelerine bir şey eklenmesi gerektiğine dair bir işaret var mı?
ShaunUK

Yanıtlar:


231

$teamDeğişkeni işlevin dışında somutlaştırdıysanız , o zaman işlev kapsamında değildir. Kullanım kullanım anahtar sözcüğü.

$team = Team::find($id);
Mail::send('emails.report', $data, function($m) use ($team)
{
   $m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
   $m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
   $m->subject('Monthly Report');
   $m->from('info@website.com', 'Sender');
});

Not: Kullanılan işlev bir PHP Kapanışıdır (anonim işlev) Laravel'e özel değildir.


3
Teşekkür ederim, böyle 'kullan' kullanabileceğinizi bilmiyordum. Keşke bunu daha erken öğrenebilseydim.
Douglas.Sesar

2
Ayrıca Laravel 5'te Maill :: queue ile ilgili sorunumu çözmek için çalıştı
DavidHyogo

@DavidHyogo Ben de bu
yazıyı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.