2016-06-22 10 views
3

Für unendlich scrollen mit paginate in l5 ich fand viele Artikel, aber sie alle verwenden diese paginate() -Funktion, wie sie Resultset von db verwenden, aber ich hole die Daten von googlefontapi als json Wenn ich also paginate() in json verwende, verursacht das einen Fehler und auch im Array. mein CodeLaravel 5 unendliche Scroll + Paginate

public function index(){ 


    $url = "https://www.googleapis.com/webfonts/v1/webfonts?key=!"; 
    $result = json_decode(file_get_contents($url))->paginate(10); 
    $font_list = ""; 
    foreach ($result->items as $font) 
    { 
     $font_list[] = [ 
      'font_name' => $font->family, 
      'category' => $font->category, 
      'variants' => implode(', ', $font->variants), 
      // subsets 
      // version 
      // files 
     ]; 
    } 

    return view('website_settings')->with('data', $font_list); 

} 

und der Fehler

Call to undefined method stdClass::paginate() 

ist gibt es eine andere Art und Weise es

Antwort

1

Für Ihren Fall zu erreichen, müssen Sie eine Illluminate\Support\Collection verwenden. Dann können wir die Illuminate\Support\Collection an eine Instanz der Illuminate\Pagination\Paginator Klasse übergeben, um unsere Illuminate\Pagination\Paginator Instanz zurück zu bekommen. Stellen Sie sicher, use Illuminate\Pagination\Paginator.

use Illuminate\Pagination\Paginator; 

Erstellen Sie dann eine Sammlung von den Ergebnissen:

$collection = collect(json_decode($file_get_contents($url), true)); 

schließlich den paginator konstruieren.

$paginator = new Paginator($collection, $per_page, $current_page); 

Oder eine Zeile es, weil das ist, wie Sie rollen:

$paginator = new Paginator(collect(json_decode($file_get_contents($url), true))); 

Sie können auch die Sammlung gespeichert werden, wenn Sie es brauchen und es nur nachladen, wenn der Antrag nicht XHR-Anforderung ist, wie bei die Seite laden. Dies ist nützlich, wenn Sie die Anforderungen API auf ein Minimum beschränken müssen. Außerdem wird die Leistung der Anforderung in der Regel beschleunigt, da mit jeder HTTP-Anforderung eine Latenz verbunden ist.

Hoffentlich hilft das.

+0

Kein Glück bro sagt es Aufruf zu undefinierter Funktion App \ Http \ Controllers \ Sammlung() @ Ohgodwhy –

+0

@Ranjith Sorry, mein eigener Tippfehler. Das sollte "sammeln", nicht "sammeln" sein. – Ohgodwhy

Verwandte Themen