我安装了 本包 但当我运行 php artisan migrate
我看到这个错误。
在Parser.php第35行:
传递给UAParser\Parser::parse()的Argument 1必须是string类型,给定null,在...
我的代码在 config/database.php
:
'tracker' => [
'driver' => 'tracker',
'host' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_DATABASE', 'forge'),
'strict' => false, // to avoid problems on some MySQL installs
],
问题出在哪里?
我想上面的代码一定有问题。
我认为是包中的一个问题,需要修复才能工作。该错误发生在 composer dump-autoload
运行。
所以我编辑了 pragmarx\tracker\src\Support\UserAgentParser.php
并编辑 construct
方法。
这是我的代码。
public function __construct($basePath, $userAgent = null)
{
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (!$userAgent && isset($_SERVER['HTTP_USER_AGENT'])) {
$userAgent = $_SERVER['HTTP_USER_AGENT'];
}
$this->parser = Parser::create()->parse($userAgent);
$this->userAgent = $this->parser->ua;
$this->operatingSystem = $this->parser->os;
$this->device = $this->parser->device;
$this->basePath = $basePath;
$this->originalUserAgent = $this->parser->originalUserAgent;
}
然后,我运行 composer dump-autoload
我自己。
注。 当然,当你运行 composer update
或 composer install
重蹈覆辙
包中有一个问题,需要修复才行。 一个快速的解决方法是,如果没有的话,可以通过php手动设置user_agent。
你可以在你的public\index.php中临时添加以下内容:
if (!isset($_SERVER['HTTP_USER_AGENT']))
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');