Laravel不断检查数组中是否有新项目

时间:2016-06-10 23:28:38

标签: php arrays laravel eloquent

我对laravel相当新,我想在我的项目中实施一个系统,警告"用户在其中一个帖子上有新评论时。

我目前查询登录用户帖子的所有评论,并将所有内容放入数组并将其发送到我的视图。现在我的目标是在此阵列中有新项目时制作警报图标。

有一种简单的方法可以用一些laravel辅助函数或其他东西来做到这一点吗?我似乎无法在laravel文档中找到任何内容。

这是解决这个问题的正确方法吗?

这是我的代码:

$uid = Auth::user()->id;
$projects = User::find($uid)->projects;
//comments
if (!empty($projects)) {
            foreach ($projects as $project) {
                    $comments_collection[] = $project->comments;
                }
            }

            if (!empty($comments_collection)) {
                $comments = array_collapse($comments_collection);

                foreach($comments as $com)
                {   
                    if ($com->from_user != Auth::user()->id) {
                        $ofdate = $com->created_at;
                        $commentdate = date("d M", strtotime($ofdate));
                        $comarr[] = array(
                                          'date' => $ofdate,
                                          $commentdate,User::find($com->from_user)->name,
                                          User::find($com->from_user)->email,
                                          Project::find($com->on_projects)->title,
                                          $com->on_projects,
                                          $com->body,
                                          Project::find($com->on_projects)->file_name,
                                          User::find($com->from_user)->file_name
                                         );
                    }    
                }
} else {
                $comarr = "";
}

如果有人能以正确的方式让我达到目标,我将非常感激! :)

提前致谢

2 个答案:

答案 0 :(得分:0)

您要找的是Observer

因此观察者将观察评论模型,并在观察者处理程序中检查帖子并获取用户ID并发送通知或您需要执行的任何其他步骤。

答案 1 :(得分:0)

您有两种方法可以实现目标。

1- laravel中Observers的解决方案,允许自动执行脚本并获取更改通知。

2-使用AJAX系统通过重新加载变量获得新结果