Truyền dữ liệu đến một đóng trong Laravel 4


108

Tôi đang cố gắng sử dụng Lớp Thư trong Laravel 4 và tôi không thể chuyển các biến cho đối tượng $ m.

đối tượng $ team chứa dữ liệu tôi lấy từ DB một cách hùng hồn.

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');
});

Vì một số lý do, tôi gặp lỗi trong đó đối tượng $ team không khả dụng. Tôi cho rằng nó có một cái gì đó để làm với phạm vi.

Bất kỳ ý tưởng?


Chính xác cùng một kịch bản cho tôi. Sự cố Thư :: gửi dẫn đến việc tôi tìm kiếm về việc chuyển các biến cho các bao đóng và sau đó quay lại điều này. Có lẽ một dấu hiệu nào đó cần được thêm vào tài liệu của bưu phẩm laravel về điều này?
ShaunUK

Câu trả lời:


231

Nếu bạn khởi tạo $teambiến bên ngoài hàm, thì biến đó không nằm trong phạm vi hàm. Sử dụng từ khóa sử dụng .

$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');
});

Lưu ý: Hàm đang được sử dụng là PHP Closure (hàm ẩn danh) Nó không dành riêng cho Laravel.


3
Cảm ơn bạn, tôi đã không nhận ra bạn có thể sử dụng 'sử dụng' như vậy. Tôi chỉ ước mình có thể học được điều này sớm hơn.
Douglas.Sesar,

2
Cũng đã làm việc để giải quyết vấn đề của tôi với Maill :: hàng đợi trong Laravel 5
DavidHyogo

@DavidHyogo Tôi cũng vậy, rất vui khi tìm thấy bài đăng này
atom2ueki
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.