封装迭代方法
public function yieldMdoel($model,$where=[]){
$obj =true;
$offset = 0; $limit = 100;
while ($obj){
$models = $model::query()->where($where)->offset($offset)->limit($limit)->get();
if ($models->isEmpty()){
$obj=false;
}
$offset += $limit;
yield $models;
}
}
demo:
public function handle()
{
foreach ($this->yieldMdoel(LeaseOrder::class) as $orders){
foreach ($orders as $order){
echo $order->id.PHP_EOL;
}
}
}