How to validate multiple files in Laravel5 with Request

160 Views Asked by At

I am using the request validation in Laravel5 , but when I use with files the validation doesn't work correctly.

I need to validate the files I recieve (Only 6 images for product) , and not appear inclusive the message required about files. For example my Request file

public function rules()
    {
        return [
            'nombre' => 'required | min:3 | max:20 | alpha_num',
            'descripcion' => 'required | min:3 | max:255 | alpha_dash ',
            'precio_salida' => 'required | numeric | min:1   ',
            'id_categoria' => 'required |numeric | min:1|alpha_num',
            'data_inici' => 'required' ,
            'id_envio' => 'required |integer | numeric',
            'estado' => 'required|integer|between:0,1 | alpha_num',
            'files' => 'required',
            'id_pago' => 'required |integer| numeric'
        ];
    }

My controller (This code shows all the validation except file required)

$usuario = new Subasta();
        $usuario->nombre = $request->input('nombre');   
        $usuario->descripcion =  $request->input('descripcion');
        $usuario->precio_salida =  $request->input('precio_salida');
        $usuario->cant_actual =  $request->input('precio_salida');
        $usuario->id_creador = Auth::user()->id;
        $usuario->id_categoria =  $request->input('id_categoria');
        $usuario->id_metode_envio =  $request->input('id_envio');
        $usuario->id_ganador = null;
        $usuario->id_metodo_pago =  $request->input('id_pago');
        $usuario->id_estado =  $request->input('estado');
        $data =  \Carbon\Carbon::createFromFormat('d/m/Y', $request->input('data_inici'));
        $files =  $request->file('files');
        $MyDateCarbon = \Carbon\Carbon::parse($data);
        $usuario->data_inici = $data ;
        $usuario->data_final = $MyDateCarbon->addDays(7);
        $usuario->id_adquirido = 0;
        $usuario->save();
        //Subir varias
        foreach($files as $file){
            $fileName = $file->getClientOriginalName();
            $ruta = 'fotos/'.$usuario->id.'/'.$fileName;
            $file->move(public_path('fotos/'.$usuario->id.'/'), $ruta);
            $user = new ImagenProducto();
            $user->id_subasta = $usuario->id;
            $user->ruta = $ruta;
            $user->save();
        }

The image with the result now

enter image description here

0

There are 0 best solutions below