首页 > 解决方案 > Laravel 表单请求验证优先级

问题描述

在我的 Laravel 5.6 应用程序中,我有一个带有store方法的控制器:

use Intervention\Image\Facades\Image as ImageHandler;

public function store(StoreFoo $request)
{
    if ($request->hasFile('image')) {
        $toResize = ImageHandler::make($request->validated()->file('image')->getRealPath());
    }
}

我的StoreFoo班级验证该image字段是图像:

public function rules()
{
    return [
        'image' => 'image'
    ];
}

我希望当我尝试上传不是图像的文件时,验证器会捕获它并返回错误。而是store运行该方法内的代码,这会从 Intervention 产生“不支持的图像类型”异常。

为什么验证器没有事先捕捉到这一点,我怎样才能让它以这种方式工作?

标签: phplaravelvalidationintervention

解决方案


在您的请求文件中尝试此操作:

'image' => 'nullable|file|mimes:jpeg,png,jpg',

当然,您可以随意添加您愿意接受的任何其他哑剧。


推荐阅读