Laravel:跟踪页面浏览量

Pau*_*tas 4 php laravel laravel-4

我正在尝试用Laravel实现一个非常简单的页面跟踪系统,只是为了知道访问最多的页面.

起初我想到创建一个具有访问日期,请求URL(来自Request::path())和用户ID的表,就这么简单.

但是我必须在报告上显示页面标题,为此我需要一些方法将请求URI转换为其页面标题.有什么想法吗?有没有更好的方法来实现这一目标?

目前我从Blade视图文件中设置页面标题@section('title', ...).

先感谢您!

Ale*_*ski 7

您可以使用Google Analytics(分析)显示非常有效的报告.使用API​​,您还可以自定义报告并(例如)显示页面标题.

如果你想自己开发它,我认为最好的解决方案是编写一个可以在每次加载页面后调用的后置过滤器.在这种情况下,设置标题的一种方法是使用flash会话变量(http://laravel.com/docs/session#flash-data):

// routes.php
Route::group(array('after' => 'log'), function()
{
    Route::get('users', 'UserController@index');
}

// filters.php
Route::filter('log', function() {
    Log::create(array('title' => Session::get('title'), '...' => '...'));
}

// UserController.php
public function index()
{
    Session::flash('title', 'Users Page');
    // ...
}


// layout.blade.php
<head>
    <title>{{ Session::get('title') }}</title>
    ...
Run Code Online (Sandbox Code Playgroud)

  • 现在 Laravel 5 出来了,过滤器已经被中间件取代了。为此,您可以使用像后过滤器这样的中间件。 (2认同)