Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php
Строк: 50
<?php

namespace IlluminateDatabaseEloquent;

use 
IlluminateDatabaseEventsModelsPruned;
use 
LogicException;

trait 
MassPrunable
{
    
/**
     * Prune all prunable models in the database.
     *
     * @param  int  $chunkSize
     * @return int
     */
    
public function pruneAll(int $chunkSize 1000)
    {
        
$query tap($this->prunable(), function ($query) use ($chunkSize) {
            
$query->when(! $query->getQuery()->limit, function ($query) use ($chunkSize) {
                
$query->limit($chunkSize);
            });
        });

        
$total 0;

        do {
            
$total += $count in_array(SoftDeletes::class, class_uses_recursive(get_class($this)))
                        ? 
$query->forceDelete()
                        : 
$query->delete();

            if (
$count 0) {
                
event(new ModelsPruned(static::class, $total));
            }
        } while (
$count 0);

        return 
$total;
    }

    
/**
     * Get the prunable model query.
     *
     * @return IlluminateDatabaseEloquentBuilder
     */
    
public function prunable()
    {
        throw new 
LogicException('Please implement the prunable method on your model.');
    }
}
Онлайн: 0
Реклама