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.