Laravel updateOrInsert сводная таблица, основанная на том, где между

#php #laravel

Вопрос:

У меня есть пример использования, когда пользователь может дать отзыв, отзыв должен быть обновлен или вставлен в зависимости от первого дня текущего месяца до последнего дня месяца. Если месяц прошел, ему необходимо создать новую запись для этого нового месяца до последнего дня этого месяца. Проблема теперь в том, что, когда я переношу промежуток между предыдущим месяцем, он все равно обновляет данные за этот месяц.

Модель:

 public function analyticReviews()
{
    return $this->belongsToMany(Review::class, 'reviews_analytics_pivot')
        ->whereBetween('created_at', ['2021-07-01', '2021-07-31']);
}
 

Контроллер :

 public function update(Request $request)
{
    $user = User::findOrFail($request->input('user_id'));


    $user->analyticReviews()
        ->newPivotQuery()
        ->updateOrInsert(
            [
                'review_id' => $request->input('review_id'),
                'user_id' => $user->id
            ],
            [
                'review_id' => $request->input('review_id'),
                'user_id' => $user->id,
                'counter' => DB::raw('counter 1')
            ]
        );
}