我目前在我的Laravel上使用antonioribeiro/tracker
来获取某些统计信息。
我正在努力使用配置中的do_not_track_routes
数组。
我只是尝试禁用跟踪器来跟踪管理员路线,但它不起作用。
'do_not_track_routes' =>
[
'admin.*',
]
/* Admin routes */
Route::group(['namespace' => 'Admin', 'as'=>'admin', 'prefix' => 'admin1452872135', 'middleware' => ['auth', 'admin', 'language']], function () {
//some route
});
即使这样,跟踪器也会插入新会话......
'do_not_track_routes' =>
[
'*',
]
我真的尝试了我想到的一切,我会感谢你的帮助...
答案 0 :(得分:1)
在包内调试后得到我自己的答案...
事实上,do_not_track_routes
(Tracker.php
)
vendor\pragmarx\tracker\src\Tracker.php
所以我更新了isTrackable方法:
protected function isTrackable() {
return $this->config->get('enabled') &&
$this->logIsEnabled() &&
$this->parserIsAvailable() &&
$this->isTrackableIp() &&
$this->isTrackableEnvironment() &&
$this->notRobot() &&
$this->isTrackableRoute();
}
并添加此新方法,以检查当前网址是否在do_not_track_route
数组中:
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;
}
适合我,如果你找到更好的答案,我就在! :)
答案 1 :(得分:0)
您必须在do_not_track_routes
下指明路线的名称(而不是URI)。
因此,如果您的路线定义为'as'=>'admin'
,则您的智能设备配置必须
'do_not_track_routes' =>
[
'admin',
]
在回复@Jiedara时,do_not_track_routes
使用了PragmaRX\Tracker\Data\Repositories\Route
来检查它是否包含$route->currentRouteName()
。 $route
是Illuminate\Routing\Router
的一个实例,currentRouteName()
方法确实提供了路由的名称。