Laravel Eloquent skip n, take all?

后端 未结 3 1533
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-07 23:19

I\'ve noticed that in Laravel when chaining a skip() you must also use take() as well. I want to skip the first n rows but take the rest. The take

3条回答
  •  青春惊慌失措
    2021-01-07 23:31

    Basically, with every OFFSET, a LIMIT must be supplied for mysql to work. Therefore, there is no way to do this without sepcifying a limit. We need some php mojo to work here.

    Let's say we have an Eloquent Class named Attendance. Here's what should work:

    //Getting count
    $count = Attendance::count();
    $skip = 5;
    $limit = $count - $skip; // the limit
    $collection = Attendance::skip($skip)->take($limit)->get();
    

提交回复
热议问题