2014-01-27 99 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

相關問題