%PDF- %PDF-
Direktori : /var/www/html/news/app/Repositories/Category/ |
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; } }