<?php namespace App; use App\Helpers\DbHelper; use App\Helpers\MiscHelper; use Illuminate\Database\Eloquent\Model; class Label extends Model { /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'url_alias' ]; public function generateAlias() { $this->url_alias = preg_replace('/[^a-z0-9\-]/', '-', strtolower($this->name)); } public function photoCount() { return $this->photos()->whereIn('album_id', DbHelper::getAlbumIDsForCurrentUser())->count(); } public function photos() { return $this->belongsToMany(Photo::class, 'photo_labels'); } public function thumbnailUrl($thumbnailName) { $photo = $this->photos() ->whereIn('album_id', DbHelper::getAlbumIDsForCurrentUser()) ->inRandomOrder() ->first(); if (!is_null($photo)) { return $photo->album->getAlbumSource()->getUrlToPhoto($photo, $thumbnailName); } // Rotate standard images $images = [ asset('themes/base/images/empty-album-1.jpg'), asset('themes/base/images/empty-album-2.jpg'), asset('themes/base/images/empty-album-3.jpg') ]; return $images[rand(0, count($images) - 1)]; } public function url() { return route('viewLabel', $this->url_alias); } }