如果没有找到图像,则返回默认图像Laravel Intervention

时间:2017-06-22 13:39:03

标签: php image laravel laravel-5.4 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。

如果找不到图像,我想显示默认图像。

先谢谢。

1 个答案:

答案 0 :(得分:1)

在这种情况下,URL操作可能不起作用。

将路线getCityImage/{cityCode}写为:

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;
      }

}