public function visitor() { $visitors = Visitor::all(); $groupByDate = $visitors->groupBy(function ($visitor) { return $visitor->created_at->format('Y-m-d'); }); $countingByDate = $groupByDate->map(function ($visitor, $date) { return [$this->gd($date), $visitor->sum('times')]; }); $this->output->set_content_type('application/json')->set_output(json_encode($countingByDate->values())); }
public function saveVisitor() { $user = auth()->user(); $request = Request::createFromGlobals(); $access = $request->getScheme() . '://' . $request->getHttpHost() . $request->getRequestUri(); $client_ip = $request->getClientIp(); $visitor = Visitor::checkAccessVisitor($access, $client_ip, $user ?: null); if ($visitor->count()) { $visitor->incrementTimes(); } else { $visitor = Visitor::create(['ip_address' => $client_ip, 'access_url' => $access, 'user_id' => $user ? $user->id : null]); } return $visitor; }