LaravelのEloquentで大量のデータをgetすると、
メモリー違反が発生する場合があります。
そんなときは、getの代わりにchunkを使いましょう。
class SomeContent extends Eloquent {
}
のようなEloquent継承のクラスがあったとして、
SomeContent::where('created_at', '>=', Carbon\Carbon::yesterday()->toDateString())
->orderBy('id')
->chunk(100, function ($someContents) {
foreach ($someContents as $someContent) {
$someContent->touch();
}
}
);
これで、100件ごとにデータが取得され、クロージャが実行されます。