ارسال ایمیل انبوه با queue در لاراول

10 ساعت پیش
توسط milad hp آپدیت شد
محمد ( 3125 تجربه )
2 روز پیش
تخصص : طراح رابط کاربری، برنامه نویس وب و اندروید

سلام خدمت شما عزیزان ، من میخوام به تعداده زیادی از کاربرام ایمیلی خبری ارسال کنم و این کارو با جاب ها تو لاراول انجام دادم ، همه چیز درسته ، ولی من فقط میتونم به یک نفر ایمیل ارسال کنم ، برای مثال:

$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() میکنم درست میشه ولی خب فقط یه کاربرو میگیره:(

milad hp ( 12080 تجربه )
1 روز پیش
تخصص : در حال پیشرفت

چیزی که به sendMail میفرستین باید ابجکت یک یوزر باشه
در حالی که شما دارین یه کالکشنی از یوزر هارو بهش پاس میدین
باید از foreach استفاده کنید

$users = User::where('confirmation_code', NULL)->get();
        foreach($users as $user) {
            $job = new SendMail($user);
            dispatch($job);
        }
محمد ( 3125 تجربه )
1 روز پیش
تخصص : طراح رابط کاربری، برنامه نویس وب و اندروید

یادم نبود اصلا ممنون بابت پاسختون

milad hp ( 12080 تجربه )
10 ساعت پیش
تخصص : در حال پیشرفت

@mhmd.dev
هرپاسخی که بهتون کمک میکنه مشکلتون حل بشه رو به عنوان بهترین پاسخ انتخاب کنید تا بقیه هم سریع بتونن از اون استفاده کنن
موفق باشید

برای ارسال پاسخ باید وارد سایت شوید