public function __construct($widget_id) { // Find or fail widget $this->widget = Widget::findOrFail($widget_id); $session_id = Session::getId(); $referrer = filter_var(Request::server('HTTP_REFERER'), FILTER_SANITIZE_URL); // Add new resource? $this->resource = Resource::firstOrNew(['uri' => $referrer, 'widget_id' => $this->widget->id]); $this->resource->uri = $referrer; $this->resource->widget_id = $this->widget->id; $this->resource->save(); // Add new visitor? $this->visitor = Visitor::firstOrCreate(['session_id' => $session_id]); $this->visitor->touch(); // Add new view? $this->view = View::firstOrCreate(['resource_id' => $this->resource->id, 'visitor_id' => $this->visitor->id]); $this->view->touch(); }