2016-11-01 4 views
2

im eine Abfrage zu erstellen versuchen, die Gesamtprodukte von einem Benutzer zählt, aber mein Code ist nicht arbeiten, lasse ich über meinen Code:Zahl insgesamt Produkte von den Benutzern Galerien

Tables: Galerien:

- id; 
- title 

Products 
- id; 
- gallery_id; 
- title; 
- price 

Modelle: Galerie

public function products(){ 
     return $this->hasMany(Product::class); 
    } 

Meine Anfrage:

$totalProducts = Gallery::where('user_id', $userId)->products()->count(); 

Fehler:

Non-static method App\Gallery::products() should not be called statically, assuming $this from incompatible context 

Antwort

1

Wenn Sie Produkte von einer Galerie zählen möchten, müssen Sie das Objekt erhalten:

$totalProducts = Gallery::where('user_id', $userId)->first()->products()->count(); 

Wenn Sie alle Produkte eines Benutzers zählen möchten, können Sie hinzufügen sollten HasManyThrough Beziehung zuerst:

public function userProducts() 
{ 
    return $this->hasManyThrough('App\Product', 'App\Gallery'); 
} 

Dann Produkte zählen:

User::find($id)->userProducts()->count(); 
+0

Aber in Ihrem Beispiel bekomme ich nicht die gesamten Produkte, die ich habe, ich bin nur eine von vielen, die ich habe, ich denke, Sie erhalten die erste Aufzeichnung. – Pedro

+0

@Pedro, ich habe die Antwort aktualisiert. –

Verwandte Themen