php - 如何使用 Laravel 检查类似于 Twitter 的重复帖子

标签 php mysql laravel-5

好的,我有一个网站,允许用户发布类似于 Facebook 和 Twitter 的内容。当用户提交帖子时,我想检查过去 10 小时内是否已提交该用户的相同内容。如果是这样,我想将用户重定向回来,使用“重复帖子”之类的内容

我目前用它来检查用户在过去一小时内是否发布了超过 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 阻止发布相同内容以防止垃圾邮件的方式。

最佳答案

你可以做类似的事情:

$recentStatuses->each(function($item) use($request){
    if($item->comment == $request->input('comment'))
    {
         return false;
    }
});

关于php - 如何使用 Laravel 检查类似于 Twitter 的重复帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39054936/

相关文章:

PHP Session 安全关键步骤

php - php web 的整数与字符串字段 mysql 设计方法

mysql - LEFT OUTER JOIN MySQL 查询返回空结果集

mysql - sql 查询没有返回足够的行

Laravel 5 中的 PHP Soapclient

php - 通过中间件检测 Laravel 上传图片

laravel - 在具有 distinct() 的关系上使用 withCount()

php - 将变量作为行插入 mysql 数据库的代码不起作用 (PHP)

php - 图像保护(确保用户无法窃取照片)

PHP Mysql 检查结束时间是否小于 2.50 小时并更新记录