%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/news/app/Repositories/Category/
Upload File :
Create Path :
Current File : /var/www/html/news/app/Repositories/Category/CategoriesEloquentRepository.php

<?php

namespace App\Repositories\Category;

use App\Models\Category;
use App\Models\Media;
use App\Providers\MorphableName;
use App\Repositories\Base\BaseEloquentRepository;
use App\Repositories\Media\MediaRepository;
use Illuminate\Container\Container;
use Illuminate\Support\Collection;

class CategoriesEloquentRepository extends BaseEloquentRepository implements CategoriesRepository
{
    /**
     * @var MediaRepository
     */
    private $mediaRepository;

    /**
     * CategoriesEloquentRepository constructor.
     * @param Container $container
     * @param Collection $collection
     * @param MediaRepository $mediaRepository
     */
    public function __construct(Container $container, Collection $collection, MediaRepository $mediaRepository)
    {
        parent::__construct($container, $collection);
        $this->mediaRepository = $mediaRepository;
    }

    public function model()
    {
        return Category::class;
    }

    /**
     * @param $category
     * @param $file_name
     * @param $real_file_name
     * @return mixed
     */
    public function changeImage($category, $file_name, $real_file_name)
    {
        if ($category->media) {
            $media = $category->media;
            $media->file_name = $file_name;
            $media->real_file_name = $real_file_name;
            $media->save();
        } else {
            $media = $this->mediaRepository->create([
                'mediable_id'    => $category->id,
                'mediable_type'  => MorphableName::forClass($this->model()),
                'uploader_id'    => $category->id,
                'file_name'      => $file_name,
                'real_file_name' => $real_file_name,
                'media_type'     => Media::MEDIA_TYPE_IMAGE_CATEGORY
            ]);
        }
        return $media;
    }

}

Zerion Mini Shell 1.0