راکت
محمد
محمد
توسط محمد مطرح شد
3 پاسخ

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

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

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


ثبت پرسش جدید
میلاد هدایت پور
میلاد هدایت پور
تخصص :در حال پیشرفت
@miladparsi10706 سال پیشمطرح شد
1

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

$users = User::where('confirmation_code', NULL)->get();
        foreach($users as $user) {
            $job = new SendMail($user);
            dispatch($job);
        }

محمد
محمد
تخصص :طراح رابط کاربری، برنامه نویس وب و اندروید
@mhmd.dev6 سال پیشمطرح شد
0

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


میلاد هدایت پور
میلاد هدایت پور
تخصص :در حال پیشرفت
@miladparsi10706 سال پیشمطرح شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام