2017-05-24 4 views
0

Ich lade die Zeilen aus der Benutzertabelle und ich verwende unten Code.
Wie Limit zu Array-Daten hinzufügen aus Datenbank in Laravel

<?php $user = User::get(); ?> 

Ich möchte Array Limit für $ Benutzerdaten hinzuzufügen. Ich möchte nicht paginate(); verwenden. So fügen Limit ich unten Code verwenden, aber es funktioniert nicht

$users = array_slice($users, 0,2);

Aber es unten Fehlermeldung zeigt

Ausnahme ‚Error‘ mit der Meldung ‚array_slice() erwartet Parameter 1 werden Array , Objekt gegeben 'in ........

Wie füge ich Limit zu $user hinzu?

Antwort

2
<?php 
    $user = User::get(); 
    $user = $user ->limit(10); 
?> 

try Grenze oder

<?php 
    $user = User::get(); 
    $user = $user ->take(10); 
?> 
0

Meinen Sie zu verwenden:

$users = array_slice($user, 0,2); 
+0

array_slice wäre gut, wenn '$ user' ein Array ist. Wenn man es vielleicht zuerst in ein Array umwandelt, würde man '$ users = array_slice ($ user-> toArray(), 0, 2);' aber eine bessere Methode wäre einfach '$ users = $ user-> take (2); ' –

0

Sie den Fehler bekommen, weil $users ein collection ist, kein Array.

könnten Sie verwenden die take Methode

$users = User::get()->take(3); 

oder die slice Methode

$users = User::get()->slice(3); 
1

In den letzten Laravel Versionen können Sie auch:

User::limit(10)->offset(0)->get(); 

Beachten Sie, dass das Benutzermodell Eloquent erweitern muss.

+0

Dies ist eine bessere Antwort, da es bereits das Ergebnis der Abfrage begrenzt, so dass das Ergebnis einfach das ist, was nicht alle Benutzer benötigen. Sie können auch '-> take (10) verwenden -> get()' –

+0

Die 'get' Methode ist am besten und sollte nach' where', 'limit',' offset' und allem für eine bessere Ressourcenverwaltung aufgerufen werden . –

0

Hier sind einige Möglichkeiten, wie Sie dies erreichen können.

Wenn Sie Offset und Limit direkt auf den Abfragegenerator anwenden, können Sie nur die benötigten Zeilen abrufen.

$users = User::skip(5)->take(10)->get(); 
$users = User::offset(5)->limit(10)->get(); 

Wenn Sie darauf bestehen, mit einem vollständigen Ergebnis zu arbeiten, dann ist dieser Ansatz das, was Sie brauchen. Sie müssen die Sammlungs-Slice-Methode nicht array_slice verwenden, da das Ergebnis eine Sammlung ist.

$users = User::all(); 
// Collection slice(offset, limit) 
$users = $users->slice(5, 10);