লারাভেল 4 এ একটি ক্লোজারে ডেটা পাঠানো


108

আমি লারাভেল 4-এ মেল ক্লাসটি ব্যবহার করার চেষ্টা করছি এবং আমি object এম অবজেক্টে ভেরিয়েবলগুলি পাস করতে পারছি না।

$ টিমের অবজেক্টে ডেটা থাকে আমি ডিবি থেকে স্পষ্টরূপে ধরেছিলাম।

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

কোনও কারণে আমি একটি ত্রুটি পেয়েছি যেখানে $ টিম অবজেক্টটি উপলব্ধ নেই। আমি মনে করি এর সুযোগটির সাথে কিছু আছে।

কোন ধারনা ?


আমার জন্য ঠিক একই দৃশ্য মেল :: প্রেরণ ইস্যুটি আমাকে বন্ধগুলিতে ভেরিয়েবলগুলি পাস করার বিষয়ে অনুসন্ধান করতে নেতৃত্ব দেয় এবং তারপরে এটি ফিরে আসে। সম্ভবত এটির মধ্যে লারাভেল মেইল ​​ডক্সে কোনও চিহ্ন যুক্ত করা দরকার?
শানউক

উত্তর:


231

আপনি যদি $teamফাংশনের বাইরে ভেরিয়েবলটি ইনস্ট্যান্ট করে থাকেন তবে এটি ফাংশনের সুযোগে নেই। ব্যবহারের কীওয়ার্ডটি ব্যবহার করুন ।

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

দ্রষ্টব্য: ব্যবহৃত ফাংশনটি পিএইচপি বন্ধ হওয়া (বেনামে ফাংশন) এটি লারাভেলের সাথে একচেটিয়া নয়।


3
আপনাকে ধন্যবাদ, আমি বুঝতে পারি নি যে আপনি এর মতো 'ব্যবহার' করতে পারেন। আমি কেবল ইচ্ছে করতাম তাড়াতাড়ি এটি শিখতে পারতাম।
ডগলাস.সেসার

2
এছাড়াও ম্যারা :: লারাভেল 5
কাতারে

@ ডেভিড হায়গো আমাকেও, এই পোস্টটি পেয়ে খুশি
atom2ueki
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.