无论访问者访问过哪个页面,我都希望将ip地址,国家/地区等信息保存到我的数据库中。
这是在laravel中这样做的正确方法吗?
答案 0 :(得分:1)
我的建议是middleware。
artisan make:middleware StoreUserInfo
此命令将创建类App\Http\Middleware\StoreUserInfo
<?php
namespace App\Http\Middleware;
use DB;
use Session;
class StoreUserInfo
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Session::get('user-info-stored')) {
// write all what you need to DB
// set session flag to prevent DB duplicates
Session::put('user-info-stored', true);
}
return $next($request);
}
}
请注意,您的软件应符合隐私条款。在德国等一些国家/地区,存储用户的IP地址是非法的。阅读更多:https://github.com/piwik/piwik/issues/692