Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Database\Eloquent;use Illuminate\Database\Events\ModelsPruned;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 \Illuminate\Database\Eloquent\Builder*/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(){//}}