<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; class Photo extends Model { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'album_id', 'name', 'description', 'file_name', 'mime_type', 'file_size', 'metadata_version', 'taken_at', 'camera_make', 'camera_model', 'camera_software', 'width', 'height' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ ]; public function album() { return $this->belongsTo(Album::class); } public function thumbnailUrl($thumbnailName = null) { /** @var Album $album */ //$album = Album::where('id', $this->album_id)->first(); $album = $this->album; $albumSource = $album->getAlbumSource(); return $album->getAlbumSource()->getUrlToPhoto($album, $this, $thumbnailName); } public function url() { return route('viewPhoto', [ 'albumUrlAlias' => $this->album->url_alias, 'photoFilename' => $this->file_name ]); } }