2017-12-08 1 views
0

Ich habe ein Modell namens Alsolike, ich will, wenn wir die Daten aus der Datenbank Ich möchte Anzahl der Ansichten erhöhen, um zu wissen, wie oft die Aufzeichnung angesehen, hier ist was ich versucht, auch zu tun, wenn es eine gute approche ist, empfehleLaravel Mutator Inkrement Nummer, wenn wir den Datensatz

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Alsolike extends Model 
{ 
    public function getMealidAttribute($value) 
    { 
     $user = App\Alsolike::first()->increment('view');; 
     $user->save(); 
    } 
} 
+0

Ihr Ansatz sieht gut aus. Aber wenn es um Webseiten Statistik geht, würde ich ein anderes Werkzeug als Goolge Analitics empfehlen. –

+0

mein Projektmanager, er möchte nicht Google Analytics –

+0

So würde ich so machen: Setzen Sie eine ansteigende Anzahl von Ansichten in diesem Seitencontroller im Konstruktor. Jedes Mal, wenn die Seite angezeigt wird, führt der Konstruktor die Aufgabe aus. Vielleicht so? –

Antwort

0

... auch wenn es ein guter [Ansatz] ist, empfehlen ...

ich denke, den middleware Ansatz passt besser in Ihr Szenario. Erstellen Sie eine Middleware, z. B. IncrementViews, mit der die Anzahl der Ansichten für Ihr Modell AlsoLike jedes Mal erhöht wird, wenn eine Route besucht wird.

Sie können auch einschränken oder filtern, wie Ihre Ansichten inkrementiert werden, versuchen Sie vielleicht, eine Tabelle zu erstellen, um die ip addresses Ihrer Benutzer zu speichern, dann überprüfen Sie, ob ip address die Seite bereits für eine Anzahl von Minuten besucht hat.

Verwandte Themen