2014-01-27 76 views
3

我试图用Laravel实现一个非常简单的页面跟踪系统,只是为了知道哪些页面访问最多。Laravel:跟踪页面浏览量

起初我想创建一个表,其中包含访问日期,请求URL(来自Request::path())和用户标识,就这么简单。

但我不得不在报告上显示页面标题,为此我需要一些方法将请求URI转换为其页面标题。任何想法?有没有更好的方法来完成这一点?

目前我通过@section('title', ...)从刀片视图文件中设置页面标题。

预先感谢您!

回答

7

您可以使用Google Analytics展示漂亮且非常高效的报告。通过API,您还可以自定义报告并(例如)显示页面标题。

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

// routes.php 
Route::group(array('after' => 'log'), function() 
{ 
    Route::get('users', '[email protected]'); 
} 

// 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> 
    ... 
+1

是,使用这个 “后” 过滤器。别想别的! :) – Andreyco

+0

同意,去谷歌分析,你不会失望。它可以完成所有工作,并且可以使用添加到模板中的一行代码进行跟踪。 –

+0

是的,我知道我可以使用Google Analytics,但是客户要求在项目中使用一个非常简单的(内置的)页面跟踪系统,并且过滤器和会话技巧很好地实现了它!再次感谢你! :) –

2

我知道这已经回答了,但我想补充一点,我已经出版了一包,可以可以轻松实现,以便在特定日期范围内跟踪Laravel的页面浏览量(如果它们是雄辩的ORM实例):最后一天,一周,一个月或所有时间。

https://github.com/marcanuy/popularity

+0

我试过你的软件包,但我得到了laravel 4.2的错误:marcanuy/popular〜1.0的安装请求 - > marcanuy/Popularity [1.0.0]可以满足。 - 结论:删除laravel/framework v4.2.11 - marcanuy /知名度1.0.0需要照明/支持4.1。* - >通过illuminate/support可以满足[v4.1.0,v4.1.1,v4.1.10,v4.1.11, v4.1.12,v4.1.13,v4.1.14,v4.1.15,v4.1.16,v4.1.17,v4.1.18,v4.1.19,v4.1.2,v4.1.20,v4.1.21,v4.1.22,v4。 1.23,v4.1.24,v4.1.25,v4.1.26,v4.1.27,v4.1.28,v4.1.29,v4.1.3,v4.1.30,v4.1.4,v4.1.5,v4.1.6,v4.1.7, v4.1.8,v4.1.9]。 – rohitnaidu19

相关问题