1
votes

Comment réparer "La méthode non statique Spatie \ Analytics \ Analytics :: fetchVisitorsAndPageViews () ne doit pas être appelée statiquement?"

Quand je mets:

php artisan config:clear

Cela donne l'erreur

'La méthode non statique ne doit pas être appelée statiquement'

Mais quand je mets seulement:

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

Je donne une page blanche sur le rafraîchissement ou dit

"L'instruction d'utilisation avec le nom non composé 'Analytics' n'a aucun effet"

au démarrage.

J'utilise Laravel 5.5.4 et bien qu'il dise que la façade doit être configurée automatiquement, cela ne fonctionnait pas donc j'ai également ajouté ceci manuellement au // config / app.php:

use Analytics;

Mais cela ne fonctionne toujours pas.

à partir du paquet github. il y avait une solution

use Spatie\Analytics\Analytics;

mais cela n'a pas fonctionné pour moi.


2 commentaires

avez-vous essayé composer dump-autoload après l'installation d'Analytics?


Oui. mais le même problème persiste.


3 Réponses :


1
votes

Ce package peut être installé via Composer.

composer require spatie / laravel-analytics

Dans Laravel 5.5 et au-dessus, le package sera enregistrer automatiquement le fournisseur de services. Dans Laravel 5.4, vous devez installer ce fournisseur de services.

config / app.php

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

Dans Laravel 5.5 et supérieur, le package enregistrera automatiquement la façade. Dans Laravel 5.4, vous devez installer la façade manuellement.

config / app.php

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

Vous voulez utilisez la façade pour accéder à la classe, vous devrez changer:

utiliser Spatie \ Analytics \ Analytics; pour utiliser Analytics;


1 commentaires

j'ai fait toutes ces choses. malheureusement mon problème persiste.



0
votes

Cela dépend dans quel contexte vous placez l'instruction use .

Dans Laravel, vous pouvez également utiliser des façades sans avoir à les importer avec use . La même classe peut être appelée en utilisant \ Analytics dans votre appel de code.

Exemple:

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


0 commentaires

0
votes

Une autre façon de simplement importer ceci dans votre classe:

use Spatie\Analytics\AnalyticsFacade as Analytics


0 commentaires