2016-04-18 4 views
0

Ich benutze derzeit antonioribeiro/tracker für einige Statistiken auf meinem Laravel.Laravel, tracks nicht mit `antonioribeiro/tracker` verfolgen

Ich habe Probleme mit der do_not_track_routes Array in der Konfig.

Ich versuche nur, den Tracker zu deaktivieren, um Admin-Route zu verfolgen, aber es funktioniert nicht.

'do_not_track_routes' => 
    [ 
    'admin.*', 
    ] 

    /* Admin routes */ 
    Route::group(['namespace' => 'Admin', 'as'=>'admin', 'prefix' => 'admin1452872135', 'middleware' => ['auth', 'admin', 'language']], function() { 
     //some route 
    }); 

Auch halten diese den Tracker neue Sitzungen einfügen ...

'do_not_track_routes' => 
    [ 
    '*', 
    ] 

ich wirklich alles versuchen, die mir in den Sinn kam, werde ich für einige Hilfe dankbar sein ...

Antwort

1

meine eigene Antwort Get in der Verpackung nach dem Debuggen ... in der Tat ist do_not_track_routes verwendet nie in den Tracker.php (vendor\pragmarx\tracker\src\Tracker.php)

So aktualisiere ich die isTrackable Methode wie folgt aus:

protected function isTrackable() { 
    return $this->config->get('enabled') && 
    $this->logIsEnabled() && 
    $this->parserIsAvailable() && 
    $this->isTrackableIp() && 
    $this->isTrackableEnvironment() && 
    $this->notRobot() && 
    $this->isTrackableRoute(); 
} 

Und diese neue Methode hinzu, um zu überprüfen, ob die aktuelle URL im do_not_track_route Array ist:

protected function isTrackableRoute() { 
    if (is_null(\Request::path())) { 
      return true; 
    } 
    $routes = $this->config->get('do_not_track_routes'); 
    foreach ($routes as $route) { 
      $match = preg_grep ('/'. $route .'/i', [\Request::path()]); 
      if(!empty($match)){ 
       return false; 
      } 
    } 
    return true; 
} 

gut für mich, wenn Sie feststellen, eine bessere Antwort, ich bin dabei! :)

+1

Ihre Lösung könnte mein Problem lösen. Danke @Jiedara. –

0

Sie müssen Ihre Route Name (nicht die URI) unter do_not_track_routes angeben.

Also, wenn Sie Ihre Route als 'as'=>'admin' Ihre Tracker Config definiert wird, muss

'do_not_track_routes' => 
[ 
    'admin', 
] 

Als Reaktion auf @Jiedara sein, do_not_track_routes in PragmaRX\Tracker\Data\Repositories\Route verwendet wird, die, wenn sie $route->currentRouteName() enthält prüft. $route ist eine Instanz von Illuminate\Routing\Router und die currentRouteName() Methode bietet tatsächlich den Namen der Route.