Laravel: почему пользователь так и не получил письмо? - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь отправить письмо пользователю, чтобы напомнить ему об использованных модулях. Итак, в таблице базы данных я создал столбец last_used_module, чтобы отследить значение, которое было нулевым или не использовалось в течение 7 дней. ТАК, кто-нибудь может мне помочь?

foreach($ModuleAutoMail as $module) {
    // echo $module ->last_used_module;
    if($mail->condition_id=='3'){                        
        if(is_null($module->last_used_module)){ 
            $ableToSendMail = true;

            $last_used_module = Carbon::parse($module->last_used_module);
            $DeferenceInDays = Carbon::parse(   Carbon::now())->diffInDays($last_used_module);

            if($DeferenceInDays > 7){
                $ableToSendMail = true;

                if ((EmailSave::where('email_id',$email_id)->where('user_id',$user_id)->count()< 1)){  
                    $ableToSendMail = true;
                }

                if ($ableToSendMail) {
                    $mails = new EmailSave;
                    $mails->user_id = $user->id;
                    $mails->email_id =$mail->id;
                    Mail::to($user->email)->send(new Automail($mail));
                    $mails->save();
                }
            }     
        }
    } 
} 

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

if гарантирует, что внутренний код запускается только в том случае, если last_used_module равен null, но затем вы пытаетесь проанализировать last_used_module как дату, которая предположительно потерпит неудачу, так как она null

0 голосов
/ 25 февраля 2020
 foreach($ModuleAutoMail as $module) {
       // echo $module ->last_used_module;
            if($mail->condition_id=='3' ){   

               $last_used_module = Carbon::parse($module->last_used_module);
               $DeferenceInDays = Carbon::parse(Carbon::now())->diffInDays($last_used_module);

                  if(is_null($module->last_used_module)){ 

                      $ableToSendMail = true;

                  }
                  elseif ($DeferenceInDays > 7) {
                            $ableToSendMail = true;
                  }
                 else {
                      if ((EmailSave::where('email_id',$email_id)->where('user_id',$user_id)->count()< 1)){  

                         $ableToSendMail = true;
                                    }
                                }
                 if ($ableToSendMail) {

                    $mails = new EmailSave;
                    $mails->user_id = $user->id;
                    $mails->email_id =$mail->id;
                    Mail::to($user->email)->send(new Automail($mail));
                    $mails->save();
                }
             }     
         }
...