Как установить даты, n дней - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время у меня есть код, который устанавливает все текущие напоминания (4) на одну и ту же дату. Как мне установить эти 87 дней друг от друга.

foreach ($request->pets as $pet) {
  $clientPet = $client->pets()->find($pet)->first();
  $clientPet->name = $pet['name'];
  $clientPet->treated_at = $pet['treatedAt'];

  $clientPet->save();

  foreach($clientPet->reminders as $reminders)
  {

    $reminders->scheduled_at   = Carbon::createFromFormat('Y-m-d', $clientPet->treated_at)->addWeeks(12)->subDays(3);
    $reminders->product_id     = $pet['productId'];
    $reminders->application_id = $pet['applicationId'];

    $reminders->save();
  }

}

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

используйте это

foreach ($request->pets as $pet) {
   $clientPet = $client->pets()->find($pet)->first();
   $clientPet->name = $pet['name'];
   $clientPet->treated_at = $pet['treatedAt'];

   $clientPet->save();

   foreach($clientPet->reminders as $reminders)
   {

     $reminders->scheduled_at   = Carbon::createFromFormat('Y-m-d', $clientPet->treated_at)->addDays(10);
     $reminders->product_id     = $pet['productId'];
     $reminders->application_id = $pet['applicationId'];

     $reminders->save();
   }

}
0 голосов
/ 30 октября 2018

Вы не сохраняете ссылку на последнюю дату в своем коде, но вы всегда добавляете только 87 (или столько дней) дней к исходной дате, поэтому попробуйте это

$date = Carbon::createFromFormat('Y-m-d', $clientPet->treated_at);
foreach($clientPet->reminders as $reminder)
{

   $reminder->scheduled_at   = $date->addDays(87);
   $reminder->product_id     = $pet['productId'];
   $reminder->application_id = $pet['applicationId'];

   $reminder->save();
}

, поскольку Carbon изменчив, каждый $reminder получит на 87 дней больше, чем предыдущий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...