Czy istnieje sposób na „ograniczenie” wyniku za pomocą ELOQUENT ORM of Laravel?


Odpowiedzi:


241

Utwórz model gry, który rozszerza Eloquent i użyj tego:

Game::take(30)->skip(30)->get();

take()tutaj dostaniesz 30 rekordów, a skip()tutaj wyrównanie do 30 rekordów.


W ostatnich wersjach Laravel możesz również użyć:

Game::limit(30)->offset(30)->get();

czy mogę prosić o przyjrzenie się pytaniu związanemu z Laravel ORM tutaj: stackoverflow.com/questions/59956706/… ?
Istiaque Ahmed

17

Jeśli chcesz podzielić wyniki na strony, użyj zintegrowanego paginatora , działa świetnie!

$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages

3
To naprawdę niesamowite! Używając bootstrapa, dosłownie cały kod, którego potrzebujesz, to $ games = Game :: paginate (30) w twoim kontrolerze i {{$ games-> links ()}} w twoim widoku ... dba o wszystko. Kochający Laravel!
david_nash,


0

Możemy również użyć tego na następujące sposoby

Aby dostać tylko pierwszy

 $cat_details = DB::table('an_category')->where('slug', 'people')->first();

Aby uzyskać limit i przesunięcie

$top_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(0)->orderBy('id', 'DESC')->get();
$remaining_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(30)->orderBy('id', 'DESC')->get();
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.