Repository URL to install this package:
|
Version:
0.1.0 ▾
|
<?php namespace Modules\Clients\Entities;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Prettus\Repository\Traits\PresentableTrait;
use Rutorika\Sortable\SortableTrait;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
use Spatie\MediaLibrary\HasMedia\Interfaces\HasMediaConversions;
/**
* Modules\Clients\Entities\Client
*
* @property integer $id
* @property string $name
* @property string $url
* @property integer $position
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @property string $deleted_at
* @property-read \Spatie\MediaLibrary\Media $logo
* @property-read \Illuminate\Database\Eloquent\Collection|\Spatie\MediaLibrary\Media[] $media
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client whereId($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client whereName($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client whereUrl($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client wherePosition($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client whereCreatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client whereUpdatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client whereDeletedAt($value)
* @method static \Illuminate\Database\Query\Builder|\Modules\Clients\Entities\Client sorted()
* @mixin \Eloquent
*/
class Client extends Model implements HasMediaConversions {
use SoftDeletes,SortableTrait,PresentableTrait, HasMediaTrait;
protected $fillable = ['name', 'url', 'position'];
// protected $attributes = ['logo'];
public function registerMediaConversions()
{
$this->addMediaConversion('thumb')
->setManipulations(['w'=>180, 'h' => 90, 'fit'=>'crop-top-left', 'fm'=>'png'])
->performOnCollections('logo');
}
/**
* @param $value
* @return bool|\Spatie\MediaLibrary\Media
*/
public function getLogoAttribute()
{
return $this->getFirstMedia('logo');
}
/**
* @param string|\Symfony\Component\HttpFoundation\File\UploadedFile $file
* @param array $properties
*/
public function setLogo($file, array $properties = [])
{
$media = $this->clearMediaCollection('logo') // clear old medias
->addMedia($file) //starting method
->preservingOriginal() //middle method
->toMediaLibrary('logo'); //finishing method
$media->manipulations = isset($properties['manipulations']) ? $properties['manipulations'] : [];
$media->custom_properties = isset($properties['custom']) ? $properties['custom'] : [];
$media->save();
}
}