سلام خدمت شما عزیزان ، من میخوام به تعداده زیادی از کاربرام ایمیلی خبری ارسال کنم و این کارو با جاب ها تو لاراول انجام دادم ، همه چیز درسته ، ولی من فقط میتونم به یک نفر ایمیل ارسال کنم ، برای مثال:
$user = User::where('confirmation_code', NULL)->get();
$job = new SendMail($user);
dispatch($job);
خب این کد میگه که همه کاربرانی که ایمیلشونو تایید کردنو بگیر ولی ارور میده که این ارور هستش:
Argument 1 passed to App\Jobs\SendMail::__construct() must be an instance of App\User, instance of Illuminate\Database\Eloquent\Collection given, called in D:\signalvorg\SignalBedam\app\Http\Controllers\HomeController.php on line 31
وقتی get() رو first() میکنم درست میشه ولی خب فقط یه کاربرو میگیره:(
چیزی که به sendMail میفرستین باید ابجکت یک یوزر باشه
در حالی که شما دارین یه کالکشنی از یوزر هارو بهش پاس میدین
باید از foreach استفاده کنید
$users = User::where('confirmation_code', NULL)->get();
foreach($users as $user) {
$job = new SendMail($user);
dispatch($job);
}@mhmd.dev
هرپاسخی که بهتون کمک میکنه مشکلتون حل بشه رو به عنوان بهترین پاسخ انتخاب کنید تا بقیه هم سریع بتونن از اون استفاده کنن
موفق باشید