传递给UAParser \ Parser :: parse()的参数1必须为字符串类型,在laravel stats tracker中为null [英] Argument 1 passed to UAParser\Parser::parse() must be of the type string, null given in laravel stats tracker
问题描述
我安装了此程序包,但是当我运行 php artisan migration
时,我看到此错误:
I installed this package but when I running php artisan migrate
, I see this error:
在Parser.php第35行中:
In Parser.php line 35:
传递给UAParser \ Parser :: parse()的参数1必须为类型字符串,给定null,调用...
Argument 1 passed to UAParser\Parser::parse() must be of the type string, null given, called in...
我在 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
],
出什么问题了?
我认为上面的代码一定是错误的.
I think the above code must be wrong.
推荐答案
我认为软件包中存在一个问题,需要修复才能正常工作.运行 composer dump-autoload
时发生错误.
I think there is an issue in the package that needs fixing to be able to work. The error occurs when composer dump-autoload
runs.
因此,我编辑了 pragmarx \ tracker \ src \ Support \ UserAgentParser.php
并编辑了 construct
方法.
So I edited the pragmarx\tracker\src\Support\UserAgentParser.php
and edit the construct
method.
这是我的代码:
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
时,会再次发生此错误
NOTE: Of course when you run composer update
or composer install
this error occur again
这篇关于传递给UAParser \ Parser :: parse()的参数1必须为字符串类型,在laravel stats tracker中为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!