【问题标题】:Laravel, do not track routes with `antonioribeiro/tracker`Laravel,不要使用 `antonioribeiro/tracker` 跟踪路线
【发布时间】:2016-04-18 08:43:38
【问题描述】:

我目前正在使用antonioribeiro/tracker 获取我的 Laravel 上的一些统计信息。

我正在努力在配置中使用 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' =>
    [
    '*',
    ]

我真的尝试了所有想到的东西,我会感谢你的帮助......

【问题讨论】:

    标签: php laravel laravel-5 routes


    【解决方案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();
    }
    

    并添加这个新方法,检查当前 URL 是否在 do_not_track_routearray 中:

    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;
    }
    

    为我工作,如果你找到更好的答案,我在! :)

    【讨论】:

    • 您的解决方案可以解决我的问题。谢谢@Jiedara。
    【解决方案2】:

    您必须在do_not_track_routes 下注明您的路线的名称(不是 URI)。

    因此,如果您的路线定义为'as'=>'admin',您的跟踪器配置必须是

    'do_not_track_routes' =>
    [
        'admin',
    ]
    

    作为对@Jiedara 的回应,PragmaRX\Tracker\Data\Repositories\Route 中使用了do_not_track_routes,它检查它是否包含$route->currentRouteName()$routeIlluminate\Routing\Router 的一个实例,currentRouteName() 方法确实提供了路由的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 2013-09-08
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多