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

namespace IlluminateDatabaseEloquent;

use 
IlluminateDatabaseEventsModelsPruned;
use 
LogicException;

trait 
Prunable
{
    
/**
     * Prune all prunable models in the database.
     *
     * @param  int  $chunkSize
     * @return int
     */
    
public function pruneAll(int $chunkSize 1000)
    {
        
$total 0;

        
$this->prunable()
            ->
when(in_array(SoftDeletes::class, class_uses_recursive(get_class($this))), function ($query) {
                
$query->withTrashed();
            })->
chunkById($chunkSize, function ($models) use (&$total) {
                
$models->each->prune();

                
$total += $models->count();

                
event(new ModelsPruned(static::class, $total));
            });

        return 
$total;
    }

    
/**
     * Get the prunable model query.
     *
     * @return IlluminateDatabaseEloquentBuilder
     */
    
public function prunable()
    {
        throw new 
LogicException('Please implement the prunable method on your model.');
    }

    
/**
     * Prune the model in the database.
     *
     * @return bool|null
     */
    
public function prune()
    {
        
$this->pruning();

        return 
in_array(SoftDeletes::class, class_uses_recursive(get_class($this)))
                ? 
$this->forceDelete()
                : 
$this->delete();
    }

    
/**
     * Prepare the model for pruning.
     *
     * @return void
     */
    
protected function pruning()
    {
        
//
    
}
}
Онлайн: 0
Реклама