一個網站上線,需要分析網站的訪問情況,這里就完成一個記錄網站訪問的日志信息
- 下載包
> composer require jenssegers/agent
- 創建中間件
> php artisan make:middleware Ipmiddleware
打開app\Http\Middleware\Ipmiddleware.php文件
~~~
<?php
namespace App\Http\Middleware;
use App\Models\Ip;
use Closure;
use Jenssegers\Agent\Agent;
class Ipmiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$agent =new Agent();
$task = $agent->platform();
$br =$agent->browser();
$dd = $agent->device();
if ($agent->isPhone()){
$ss ='mobile';
$data['isphone']=1;
}else{
$ss =' ';
}
if ($agent->isRobot()){
$robot = $agent->robot();
$data['isrobot']=1;
}else{
$robot ='';
}
if ($agent->isRobot()) {
}else if ($agent->isPhone()) {
}else{
$data['ispc']=1;
}
$device = $task.'_'.$br.'-'.$dd.'_'.$ss."_".$robot;
$data['url']=$request->url();
$data['ip']=$request->ip();
$data['device']=$device;
Ip::create($data);
return $next($request);
}
}
~~~
- 注冊中間件,打開Kernel.php文件
> 'iplog'=>\App\Http\Middleware\Ipmiddleware::class,
- 路由中使用中間件
~~~
//前端
Route::namespace('Home')->middleware('iplog')->group(function (){
Route::get('/','HomeController@index')->name('home.index');//首頁
Route::get('category/{category_id}','HomeController@category')->name('home.category');//分類頁
Route::get('article/{id}','HomeController@show')->name('home.show');//詳細頁
});
~~~
訪問一篇文章看看是否記錄
