2017-06-22 10 views
1

旅行アプリケーションの場合、モバイルアプリケーションは各都市のデフォルトイメージを都市コードから取得する必要があります。例えばイメージが見つからない場合は、デフォルトイメージを返します。Laravel Intervention

:example.com/imageCache/thumbnail/JFK.png

サムネイルがカスタムフィルタのように定義される

/** 
* Sample filter for image manipulation 
* via image cache 
*/ 

namespace App\ImageFilters; 


use Intervention\Image\Filters\FilterInterface; 
use Intervention\Image\Image; 
use Intervention\Image\ImageManagerStatic; 

class Thumbnail implements FilterInterface 
{ 

    /** 
    * Applies filter to given image 
    * 
    * @param Image $image 
    * @return Image 
    */ 
    public function applyFilter(Image $image) 
    { 
     //TODO: Do something to check if the image doesn't exist. 

     $gradient = ImageManagerStatic::make(public_path('images/gradient.png')); 
     return $image->fit(200, 200)->insert($gradient,'center')->blur(); 
    } 
} 

アプリケーションは、しかし、この関数が呼び出される404前でもスロー。

画像が見つからない場合は、デフォルト画像を表示したいと思います。

ありがとうございました。

+0

:として

はルートgetCityImage/{cityCode}を書きます! – Maraboc

+0

makeコマンドが見えますか? – Ohgodwhy

+0

それは存在するイメージのために働く。イメージが存在しないときにクラッシュします。 –

答えて

1

この場合、URL操作は機能しない可能性があります。私はTHREはあなたのルートで問題だと思う

public function getCityImage($cityCode){ 

    if(file_exists('path_to_city_images/'.$cityCode.'.png'){ 
     $image = Intervention\Image\Image::make('path_to_city_images/'.$cityCode.'.png'); 
     return $image->filter(new Thumbnail()); 
     } 
     else { 
     return $your_default_image; 
     } 

} 
関連する問題