Попытка удалить все записи в базе данных, которые имеют определенный запрос, используя Carbon - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь добиться того, чтобы я хотел удалить записи из моей таблицы, которые моложе 17 лет или младше.И что я хочу удалить также родительскую таблицу.

, так что это в моей модели

// Define the "age" property accessor.
public function getAgeAttribute()
{
    return now()->diffInYears($this->birthdate);
}

, и это в моем контроллере,

public function removeApplicanWhoAreNotAdults()
{
    $date = Carbon::createFromDate(2001, 01, 01);
    $todaysDate = Carbon::today();

    $lastDay = $date->copy()->endOfYear();

    $applicants = Applicant::whereBetween("birthdate", [$lastDay, $todaysDate])->get();

    $applicants->each(function ($item, $key) {

    });
}

Достаточно ли кода на моем контроллере для проблемы, которую я пытаюсь решить, и как я могу запрашивать кандидатов, которым исполнилось 17 лет, например, когда мой возраст равен нулю в моей базе данных

1 Ответ

0 голосов
/ 28 марта 2019
Solution 1:
       $applicant = Applicant::get();
              foreach ($applicant as $key => $value) {
                  $year = now()->diffInYears($value->birthdate);

                  if($year > 17){
                      Applicant::where('id', $value->id)->delete();
                  }
             }

Второй способ - сначала вам нужно создать одну команду, чтобы вы могли правильно и правильно программировать.

Следуйте этому примеру

https://itsolutionstuff.com/post/example-of-cron-job-in-laravel-5example.html

Поместите приведенный выше код в метод handel ()

        public function handle()
        {
          $applicant = Applicant::get();
          foreach ($applicant as $key => $value) {
              $year = now()->diffInYears($value->birthdate);

              if($year > 17){
                  Applicant::where('id', $value->id)->delete();
              }
          }
        }
...