Laravel의 ELOQUENT ORM으로 결과를 "제한"하는 방법이 있습니까?


135

Laravel의 ELOQUENT ORM으로 결과를 "제한"하는 방법이 있습니까?

 SELECT * FROM  `games` LIMIT 30 , 30 

그리고 Eloquent와 함께?

답변:


241

Eloquent를 확장하는 게임 모델을 만들고 이것을 사용하십시오 :

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

take()여기에 30 개의 레코드가 있고 skip()여기에 30 개의 레코드로 오프셋됩니다.


최신 라 라벨 버전에서는 다음을 사용할 수도 있습니다.

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

Laravel ORM 관련 질문을 여기에서 살펴볼 수 있습니까 : stackoverflow.com/questions/59956706/…
Istiaque Ahmed

17

당신이 PAGINATE 결과를 찾고 있다면, 통합 사용 매기기를 , 그것은 위대한 작품!

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

3
이것은 정말 놀랍습니다! 부트 스트랩을 사용하면 말 그대로 필요한 모든 코드는 컨트롤러의 $ games = Game :: paginate (30)이고 뷰의 {{$ games-> links ()}}입니다. 모든 것을 처리합니다. 사랑하는 라 라벨!
david_nash


0

또한 다음과 같은 방법으로 사용할 수 있습니다

먼저 만 얻으려면

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

한계와 오프셋을 얻으려면

$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();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.