App\Models\Forum\TopicTrack::readStatus PHP Method

readStatus() public static method

public static readStatus ( $user, $topicsArrays )
    public static function readStatus($user, ...$topicsArrays)
    {
        if (!$user) {
            return [];
        }
        $topicData = [];
        foreach ($topicsArrays as $topics) {
            foreach ($topics as $topic) {
                $topicData[$topic->topic_id] = $topic->topic_last_post_time;
            }
        }
        $readStatus = self::where('user_id', $user->user_id)->whereIn('topic_id', array_keys($topicData))->select('topic_id', 'mark_time')->get();
        $result = [];
        foreach ($readStatus as $r) {
            if ($r->mark_time >= $topicData[$r->topic_id]) {
                $result[$r->topic_id] = true;
            }
        }
        return $result;
    }

Usage Example

Example #1
0
 public function show($id)
 {
     $forum = Forum::with("subForums")->findOrFail($id);
     $this->authorizeView($forum);
     $pinnedTopics = $forum->topics()->pinned()->orderBy("topic_type", "desc")->recent()->get();
     $topics = $forum->topics()->normal()->recent()->paginate(15);
     $topicReadStatus = TopicTrack::readStatus(Auth::user(), $pinnedTopics, $topics);
     return view("forum.forums.show", compact("forum", "topics", "pinnedTopics", "topicReadStatus"));
 }
All Usage Examples Of App\Models\Forum\TopicTrack::readStatus
TopicTrack