protected function cleanup($dataType, $data)
    {
        // Delete Translations, if present
        if (is_bread_translatable($data)) {
            $data->deleteAttributeTranslations($data->getTranslatableAttributes());
        }

        // Delete Images
        $this->deleteBreadImages($data, $dataType->deleteRows->where('type', 'image'));

        // Delete Files
        foreach ($dataType->deleteRows->where('type', 'file') as $row) {
            if (isset($data->{$row->field})) {
                foreach (json_decode($data->{$row->field}) as $file) {
                    $this->deleteFileIfExists($file->download_link);
                }
            }
        }

        // Delete media-picker files
        $dataType->rows->where('type', 'media_picker')->where('details.delete_files', true)->each(function ($row) use ($data) {
            $content = $data->{$row->field};
            if (isset($content)) {
                if (!is_array($content)) {
                    $content = json_decode($content);
                }
                if (is_array($content)) {
                    foreach ($content as $file) {
                        $this->deleteFileIfExists($file);
                    }
                } else {
                    $this->deleteFileIfExists($content);
                }
            }
        });
    }
protected function cleanup($dataType, $data)
    {
        // Delete Translations, if present
        if (is_bread_translatable($data)) {
            $data->deleteAttributeTranslations($data->getTranslatableAttributes());
        }

        // Delete Images
        $this->deleteBreadImages($data, $dataType->deleteRows->where('type', 'image'));

        // Delete Files
        foreach ($dataType->deleteRows->where('type', 'file') as $row) {
            if (isset($data->{$row->field})) {
                foreach (json_decode($data->{$row->field}) as $file) {
                    $this->deleteFileIfExists($file->download_link);
                }
            }
        }

        // Delete media-picker files
        $dataType->rows->where('type', 'media_picker')->where('details.delete_files', true)->each(function ($row) use ($data) {
            $content = $data->{$row->field};
            if (isset($content)) {
                if (!is_array($content)) {
                    $content = json_decode($content);
                }
                if (is_array($content)) {
                    foreach ($content as $file) {
                        $this->deleteFileIfExists($file);
                    }
                } else {
                    $this->deleteFileIfExists($content);
                }
            }
        });
    }
protected function cleanup ( $ dataType , $ data ) { // Delete Translations, if present if ( is_bread_translatable ( $ data ) ) { $ data -> deleteAttributeTranslations ( $ data -> getTranslatableAttributes ( ) ) ; } // Delete Images $ this -> deleteBreadImages ( $ data , $ dataType -> deleteRows -> where ( 'type' , 'image' ) ) ; // Delete Files foreach ( $ dataType -> deleteRows -> where ( 'type' , 'file' ) as $ row ) { if ( isset ( $ data -> { $ row -> field } ) ) { foreach ( json_decode ( $ data -> { $ row -> field } ) as $ file ) { $ this -> deleteFileIfExists ( $ file -> download_link ) ; } } } // Delete media-picker files $ dataType -> rows -> where ( 'type' , 'media_picker' ) -> where ( 'details.delete_files' , true ) -> each ( function ( $ row ) use ( $ data ) { $ content = $ data -> { $ row -> field } ; if ( isset ( $ content ) ) { if ( ! is_array ( $ content ) ) { $ content = json_decode ( $ content ) ; } if ( is_array ( $ content ) ) { foreach ( $ content as $ file ) { $ this -> deleteFileIfExists ( $ file ) ; } } else { $ this -> deleteFileIfExists ( $ content ) ; } } } ) ; }
Remove translations, images and files related to a BREAD item.

@param \Illuminate\Database\Eloquent\Model $dataType
@param \Illuminate\Database\Eloquent\Model $data

@return void
Remove translations images and files related to a BREAD item .