Как проверить наличие дубликата сообщения, похожего на Twitter, используя Laravel

php mysql laravel-5

50 просмотра

1 ответ

Итак, у меня есть веб-сайт, который позволяет пользователям публиковать контент, похожий на Facebook и Twitter. Когда пользователь отправляет сообщение, я хочу проверить, был ли тот же контент от этого пользователя уже представлен за последние 10 часов. Если это так, я хочу перенаправить пользователя обратно, с чем-то вроде «Duplicate Post»

В настоящее время у меня есть это, чтобы проверить, опубликовал ли пользователь более 10 сообщений за последний час:

//Only allow user to post 10 statuses each hour
    $timestamp = time() - 36000;
    $recentStatuses = Status::where('user_id', Auth::user()->id)->where('created_at', '>', $timestamp)->orWhere('created_at', '=', $timestamp)->skip(0)->take(10)->get();
    if ($recentStatuses->count() <= 9) {
    //post content
}

Теперь я хочу проверить, отправляет ли пользователь один и тот же контент в течение последних 10 часов, подобно тому, как Facebook и Twitter не позволяют публиковать один и тот же контент для предотвращения спама.

Автор: Luna Источник Размещён: 08.11.2019 11:23

Ответы (1)


0 плюса

Вы можете сделать что-то похожее на это:

$recentStatuses->each(function($item) use($request){
    if($item->comment == $request->input('comment'))
    {
         return false;
    }
});
Автор: Mina Abadir Размещён: 20.08.2016 07:34
Вопросы из категории :
32x32