Аргумент 1, передаваемый в UAParser \ Parser :: parse (), должен иметь тип string, нуль указан в laravel stats tracker - PullRequest
0 голосов
/ 02 мая 2020

Я установил этот пакет , но когда я запускаю php artisan migrate, я вижу эту ошибку:

В Parser. php строка 35:

Аргумент 1, передаваемый в UAParser \ Parser :: parse (), должен иметь тип строки с указанным нулем, вызываемый в ...

мой код в 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
],

в чем проблема?

Я думаю, что приведенный выше код должен быть неправильным.

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

I вещь В пакете есть проблема, которую нужно исправить, чтобы она могла работать. Ошибка возникает при запуске «composer dump-autoload». поэтому я отредактировал pragmarx \ tracker \ src \ Support \ UserAgentParser. php и отредактировал метод конструкции.

здесь мой код

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 "my self.

ПРИМЕЧАНИЕ Конечно, когда вы запускаете composer обновление или composer установка, эта ошибка повторяется

0 голосов
/ 02 мая 2020

В пакете есть проблема, которую нужно исправить, чтобы она могла работать. Быстрый обходной путь - установить user_agent вручную на php, если он отсутствует:

. Вы можете добавить следующее в начале вашего 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');
...