传递给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

查看:60
本文介绍了传递给UAParser \ Parser :: parse()的参数1必须为字符串类型,在laravel stats tracker中为null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我安装了此程序包,但是当我运行 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆