Spatie\MediaLibrary\HasMedia\HasMediaTrait::updateMedia PHP Метод

updateMedia() публичный Метод

Update a media collection by deleting and inserting again with new values.
public updateMedia ( array $newMediaArray, string $collectionName = 'default' ) : array
$newMediaArray array
$collectionName string
Результат array
    public function updateMedia(array $newMediaArray, string $collectionName = 'default') : array
    {
        $this->removeMediaItemsNotPresentInArray($newMediaArray, $collectionName);
        $orderColumn = 1;
        $updatedMedia = [];
        foreach ($newMediaArray as $newMediaItem) {
            $mediaClass = config('laravel-medialibrary.media_model');
            $currentMedia = $mediaClass::findOrFail($newMediaItem['id']);
            if ($currentMedia->collection_name != $collectionName) {
                throw MediaCannotBeUpdated::doesNotBelongToCollection($collectionName, $currentMedia);
            }
            if (array_key_exists('name', $newMediaItem)) {
                $currentMedia->name = $newMediaItem['name'];
            }
            if (array_key_exists('custom_properties', $newMediaItem)) {
                $currentMedia->custom_properties = $newMediaItem['custom_properties'];
            }
            $currentMedia->order_column = $orderColumn++;
            $currentMedia->save();
            $updatedMedia[] = $currentMedia;
        }
        return $updatedMedia;
    }