如何修复“不应静态调用非静态方法 Spatie\Analytics\Analytics::fetchVisitorsAndPageViews()?”

问题描述 投票:0回答:5

当我放:

use Spatie\Analytics\Analytics;

它给出了错误

'非静态方法不应该被静态调用'

但是当我只放:

use Analytics;

我在刷新时给出一个白页或说

“具有非复合名称“Analytics”的 use 语句无效”

开始时。

我正在使用 Laravel 5.5.4,虽然它说外观应该自动设置,但它不起作用,所以我还手动将其添加到 // config/app.php:

'Analytics' => Spatie\Analytics\AnalyticsFacade::class,

但还是不行。

来自 github 包。有一个解决方案

php artisan config:clear

但这对我不起作用。

laravel google-analytics laravel-5.5
5个回答
4
投票

这个包可以通过Composer安装。

composer require spatie/laravel-analytics

在 Laravel 5.5 及更高版本中,包将自动注册服务提供者。在 Laravel 5.4 中你必须安装这个服务提供者。

config/app.php

'providers' => [
    ...
    Spatie\Analytics\AnalyticsServiceProvider::class,
    ...
];

在 Laravel 5.5 及更高版本中,包将自动注册外观。在 Laravel 5.4 中,您必须手动安装 Facade。

config/app.php

'aliases' => [
    ...
    'Analytics' => Spatie\Analytics\AnalyticsFacade::class,
    ...
];

你想使用门面来访问类,你需要更改:

use Spatie\Analytics\Analytics;
use Analytics;


1
投票

另一种方法是将其导入到您的班级中:

use Spatie\Analytics\AnalyticsFacade as Analytics
    

0
投票
这取决于您在什么上下文中放置

use

 语句。

在 Laravel 中,您还可以使用外观,而无需使用

use

 导入它。
可以通过在代码调用中使用 
\Analytics
 来调用同一个类。

示例:

\Analytics::fetchMostVisitedPages(\Period::days(7));


    


0
投票
适用于 Laravel 10。

"spatie/laravel-analytics": "^5.0"
使用

use Spatie\Analytics\Facades\Analytics;


    


0
投票
这段代码对我来说效果很好

use Spatie\Analytics\AnalyticsFacade as Analytics ; use Spatie\Analytics\Period as Period;
像这样调用函数

$analyticsData = Analytics::fetchMostVisitedPages(Period::days(7));
    
© www.soinside.com 2019 - 2024. All rights reserved.