2017-07-07 2 views
1

Ich habe diese Situation in meinem db:Laravel 5.4 - Methode paginate existiert nicht. - Mehrere Beziehung Filter und zählen orderby

projects = id | title | slug

products = id | project_id | category_id

likes = id | project_id | user_id

Ich mag alle Produkte mit einem bestimmten „category_id“, mit „Status“ pubblished und Ordnung durch das Projekt gefällt das (Paginieren bekommen würde für 21 Produkte).

$products = Product::where('category_id', $category->id)->where('status','published')->with('project')->get()->sortBy(function($product) 
     { 
      return $product->project->like->count(); 
     })->paginate(21); 

Ohne "-> Paginieren (21)" gut funktionieren, so bekomme ich diesen Fehler:

BadMethodCallException in Macroable.php line 74: Method paginate does not exist.

Antwort

1

get() aus dieser entfernen und für die Antwort

$products = Product::where('category_id', $category->id)->where('status','published')->with('project')->sortBy(function($product) 
     { 
      return $product->project->like->count(); 
     })->paginate(21); 
+0

danke versuchen! aber geben Sie diesen Fehler zurück: Rufen Sie die undefinierte Methode Illuminate \ Database \ Query \ Builder :: sortBy() –

+0

auf, überprüfen Sie dies bitte unter https://laracasts.com/discuss/channels/eloquent/model-sortby-relationship-count-and-paginate -Ergebnisse –