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


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

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

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

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

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


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

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


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

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