Hi i am facing an issue through loop i am sending email but it save record two time or 4times also in table. i also add check if rec is null then it do an entry
here it is my code
DB::table('sendportal_subscribers')->where('unsubscribed_at',NULL)->orderBy('id')->chunk(300, function ($subscribers) use ($template_campaign,$campaign) {
foreach ($subscribers as $subscriber) {
$check = DB::table('sendportal_messages')->where(['source_id'=>$campaign->id,'subscriber_id' => $subscriber->id,'recipient_email'=>$subscriber->email])->first();
if (is_null($check)) {
//save entry
$data = [
'hash'=> Hash::make($subscriber->email),
'workspace_id'=>1,
'subscriber_id' => $subscriber->id,
'source_type'=>'Sendportal\Base\Models\Campaign',
'source_id' => $campaign->id,
'recipient_email'=> $subscriber->email,
'subject'=> $campaign->name,
'from_name'=> $campaign->from_name,
'from_email'=>$campaign->from_email,
'open_count'=>0,
'click_count'=>0,
'sent_at'=>now(),
'created_at'=>now()
];
DB::table('sendportal_messages')->insert($data);
//send mail
sendEmailCampaignJob::dispatch($subscriber->email ,$campaign->subject);
}
here it is table data

it store 4 times record in table for same entry
Thanks for any help