getAlbumSource(); $thumbnail = $request->get('t', $albumSource->getOriginalsFolder()); $photo = PhotoController::loadPhotoByAlbumAndFilename($album, $photoFilename); return response()->file($albumSource->getPathToPhoto($album, $photo, $thumbnail)); } public function show($albumUrlAlias, $photoFilename) { $album = PhotoController::loadAlbumByAlias($albumUrlAlias); $photo = PhotoController::loadPhotoByAlbumAndFilename($album, $photoFilename); return Theme::render('gallery.photo', [ 'album' => $album, 'photo' => $photo ]); } /** * @param $id * @return Album */ public static function loadAlbumByAlias($alias) { $album = Album::where('url_alias', $alias)->first(); if (is_null($album)) { App::abort(404); return null; } return $album; } /** * @param $id * @return Photo */ public static function loadPhotoByAlbumAndFilename(Album $album, $filename) { $photo = Photo::where([ ['album_id', $album->id], ['file_name', $filename] ])->first(); if (is_null($photo)) { App::abort(404); return null; } return $photo; } }