我正在尝试使用Laravel实现一个非常简单的页面跟踪系统,只是为了知道访问最多的页面。
首先我想到创建一个包含访问日期,请求URL(来自Request::path()
)和用户ID的表,就像那样简单。
但是我必须在报告上显示页面标题,为此我需要一些方法将请求URI转换为其页面标题。有什么想法吗?有没有更好的方法来实现这一目标?
目前,我通过@section('title', ...)
将刀片视图文件设置为页面标题。
提前谢谢!
答案 0 :(得分: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>
...
答案 1 :(得分:2)
我知道这已经得到了回答,但我想补充一点,我已经发布了一个可以轻松实现的软件包,以便在特定的日期范围内跟踪Laravel的页面浏览量(如果它们是Eloquent ORM实例):最后一天,一周,一个月或所有时间。