Laravel 5.3中的图像验证

时间:2017-08-07 11:08:55

标签: php laravel validation laravel-5

我在App\Traits\Validate创建了一个简单的函数。 此功能只是简单地验证图像。

public function validate_image($request)
{
    $check = true;
    $validate = $this->validate($request, [
        'image' => 'image|mimes:jpeg,png,jpg|max:2048',
    ]);
    dd($validate);
    if($validate->fails())
    {
        $check = false;
    }

    return $check;
}

现在我在Controller中通过

访问此功能
$check_image = $this->validate_image($request); 

我正在传递整个request变量。但仍然在validate_image函数中我得到null。我错过了什么?我在Validate trait中有其他函数,这些函数工作正常,但是这个函数返回null值。请帮忙

yess image是表单中file字段的名称

3 个答案:

答案 0 :(得分:2)

我不知道为什么,但试试这个......

首先添加

use Validator;

现在你发送了$request我相信你在传递给Validator

之前就已经在数组中了

$data[] = $request->files;
    $validate = Validator::make($data, [
        'image' => 'image|mimes:jpeg,png,jpg|max:2048',
    ]);

现在dd()这个。希望它有效。

答案 1 :(得分:1)

首先确保您的表单可以发送文件。

<form method="POST" action="" enctype="multipart/form-data">


{!! Form::open([
     'route' => '',
    'method' => 'POST',
    'files' => true
]) !!}

还可以创建自定义请求。你真的需要在控制器中进行验证吗?

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class CustomRequest extends FormRequest
{

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'image' => 'image|mimes:jpeg,png,jpg|max:2048',
        ];
    }
}

答案 2 :(得分:0)

确保您可以从表单中处理图像。
确保在开头子句中添加了:

enctype="multipart/form-data"