Laravel Eloquent スキップしてすべて取得? 質問する

Laravel Eloquent スキップしてすべて取得? 質問する

skip()Laravel では、 を連鎖させるときにも を使用する必要があることに気付きましたtake()。最初の n 行をスキップして、残りを取得したいです。 take メソッドは整数のみを許可します。 take に大きな数値を指定するなどのハッキーなトリックに頼らずに、これを実行するにはどうすればよいですか?

ベストアンサー1

基本的に、MySQL が動作するには、すべての OFFSET に LIMIT を指定する必要があります。したがって、制限を指定せずにこれを行う方法はありません。ここで動作するには、PHP の mojo が必要です。

という名前の Eloquent クラスがあるとしますAttendance。次のように動作するはずです。

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

おすすめ記事