src/Db/ImageAggrDbAgent.php
public function imageToDb(ARef $aRef, ImageSettingInterface $imageSetting, $attrs = [], $init = false)
    {
        $owner_name = $aRef->getType()->getName();
        $image_name = $imageSetting->getName();
        $owner_id = $aRef->getId();

        $collection = Image::where('entity_name', '=', $owner_name)->where('entity_id', '=', $owner_id)->where('name', '=', $image_name)->get();

        $cache_index = 0;

        $image = null;

        //Удалим лишние записи по этому ключу, если есть (на всякий случай, т. к. записи в БД уникальны по авто инк. id)
        foreach($collection as $curr_image)
        {
            if($image === null)
            {
                $cache_index = $curr_image->cache_index;
                $image = $curr_image;

                if($init)
                {
                    break;
                }
            }
            else
            {
                $image->delete();
            }
        }

        $db = !$init;

        if($image === null)
        {
            $image = new Image;
            $image->alt = '';
            $image->link = '';
            $image->width = 400;
            $image->height = 400;
            $db = true;
        }

        $cache_index++;

        if($db)
        {
            //Если реквизита нет переданных для записи или не собираемся записывать в базу(инициализация), то взять для построения item'а реквизит из базы
            if(!array_key_exists('alt', $attrs))
            {
                $attrs['alt'] = $image->alt;
            }

            if(!array_key_exists('link', $attrs))
            {
                $attrs['link'] = $image->link;
            }

            if(!array_key_exists('width', $attrs))
            {
                $attrs['width'] = $image->width;
            }

            if(!array_key_exists('height', $attrs))
            {
                $attrs['height'] = $image->height;
            }

            $image->cache_index  = $cache_index;
            $image->entity_name  = $owner_name;
            $image->entity_id    = $owner_id;
            $image->name         = $image_name;
            $image->alt          = $attrs['alt'];
            $image->link         = $attrs['link'];
            $image->width        = $attrs['width'];
            $image->height       = $attrs['height'];

            $image->save();
        }
    }
public function imageToDb(ARef $aRef, ImageSettingInterface $imageSetting, $attrs = [], $init = false)
    {
        $owner_name = $aRef->getType()->getName();
        $image_name = $imageSetting->getName();
        $owner_id = $aRef->getId();

        $collection = Image::where('entity_name', '=', $owner_name)->where('entity_id', '=', $owner_id)->where('name', '=', $image_name)->get();

        $cache_index = 0;

        $image = null;

        //Удалим лишние записи по этому ключу, если есть (на всякий случай, т. к. записи в БД уникальны по авто инк. id)
        foreach($collection as $curr_image)
        {
            if($image === null)
            {
                $cache_index = $curr_image->cache_index;
                $image = $curr_image;

                if($init)
                {
                    break;
                }
            }
            else
            {
                $image->delete();
            }
        }

        $db = !$init;

        if($image === null)
        {
            $image = new Image;
            $image->alt = '';
            $image->link = '';
            $image->width = 400;
            $image->height = 400;
            $db = true;
        }

        $cache_index++;

        if($db)
        {
            //Если реквизита нет переданных для записи или не собираемся записывать в базу(инициализация), то взять для построения item'а реквизит из базы
            if(!array_key_exists('alt', $attrs))
            {
                $attrs['alt'] = $image->alt;
            }

            if(!array_key_exists('link', $attrs))
            {
                $attrs['link'] = $image->link;
            }

            if(!array_key_exists('width', $attrs))
            {
                $attrs['width'] = $image->width;
            }

            if(!array_key_exists('height', $attrs))
            {
                $attrs['height'] = $image->height;
            }

            $image->cache_index  = $cache_index;
            $image->entity_name  = $owner_name;
            $image->entity_id    = $owner_id;
            $image->name         = $image_name;
            $image->alt          = $attrs['alt'];
            $image->link         = $attrs['link'];
            $image->width        = $attrs['width'];
            $image->height       = $attrs['height'];

            $image->save();
        }
    }
@param \Interpro\Core\Contracts\Ref\ARef $aRef
@param \Interpro\ImageAggr\Contracts\Settings\ImageSetting $imageSetting
@param array $attrs

@return void