2016-12-18 3 views
2

Ich möchte eine Paginierung mit Rückkehr als json schaffen, aber ich einen Fehler wie untenWie mit Rückkehr als json Laravel Paginieren

Error in Macroable.php Linie 74 erhalten: Methode Links nicht existieren.

hier mein Controller-Code

public function getcustomer($id){ 

    $customer = Customer::find($id)->paginate(5); 

    return response()->json([$customer], 200); 
} 

und hier meine Klinge Code

{{$customer->links('vendor.pagination.pagination')}} 

wie kann ich eine Paginierung mit Json Antwort erstellen()?

Antwort

2

Die Laravel Klassen paginator Ergebnis implementieren die Illuminate\Contracts\Support\Jsonable Vertrag Schnittstelle und setzen die toJson Methode, es ist so sehr einfach Ihre Paginierung Ergebnisse zu JSON konvertieren.

https://laravel.com/docs/5.3/pagination#converting-results-to-json

Wenn Sie Links bauen wollen, sollten Sie es manuell tun. Oder Sie geben wie gewohnt die Paginierung zurück und verwenden die Methode render(), um Links zu erstellen und eine Kopie des Paginierungsobjekts zu erstellen, um es mit toJson() in JSON zu konvertieren.

1

Ich bin in der gleichen Frage wie oben erwähnt und bin gespannt, wie Sie es am Ende gelöst haben.

In meinem Fall mache ich eine API-Anforderung, die das folgende decodierte Ergebnis bekommt:

{#388 ▼ 
+"total": 699 
+"per_page": 50 
+"current_page": 1 
+"last_page": 14 
+"next_page_url": "API_URL?page=2" 
+"prev_page_url": null 
+"from": 1 
+"to": 50 
+"data": array:50 [▶] 
} 

Und in meiner Klinge Vorlage:

{{ $products->links() }} 

In meiner Klinge Vorlage heißt es, dass die Links-Methode existiert nicht, wahrscheinlich aufgrund der Struktur des JSON. Wie baue ich meine Links manuell, z. mit render()?

+0

Hallo, Entschuldigung für späte Antwort können Sie auf diese Weise versuchen http://blog.hazaveh.net/2016/03/laravel-5-manual-pagination-from-array/ – rafitio