Como validar a matriz de imagens inseridas em laravel e precisa inserir o valor da enumeração com base na validação?

9

Função do controlador:

public function addImages(Request $request,$imagesProductId)
{
    $product   = Product::create($request->all());
    $filenames = array();

    if ($request->images == '') {
        return Redirect::back()->withErrors(['msg', 'The Message']);
    }

    if () {
    // also need to validate on the extension and resolution of images 
    // (ie., if the validation fails the enum value will be "QCFailed")
    } else {
        foreach ($request->images as $photo) {
            $filename    = substr($photo->store('public/uploadedImages'), 22);
            $filenames[] = asset('storage/uploadedImages/'.$filename);

            ProductsPhoto::create([
                'product_id'    => $product->id,
                'productId'     => $imagesProductId,
                'nonliveStatus' =>"QCVerified",   
                'filename'      => $filename
            ]);
        }

        // echo('nonliveStatus');
    }

    return response()->json($filenames);
}

Esta é a minha função para inserir uma matriz de imagens. Para isso eu usei dois modelos. A matriz de imagens é inserida, mas com base na validação, o valor de enum deve ser inserido, respectivamente..Minhas validações são as imagens necessárias e tamanho máximo e suas extensões

    
por suryakala velusamy 27.09.2017 в 11:33
fonte

1 resposta

2

De acordo com documentação do Laravel 5.4 , você precisa criar um objeto validador com um conjunto de regras. Algo parecido com isto:

public function addImages(Request $request, $imagesProductId)
{
    $product   = Product::create($request->all());
    $filenames = array();

    if (empty($request->images)) {
        return Redirect::back()->withErrors(['msg', 'The Message']);
    }

    $rules = [
        'images' => 'mimes:jpeg,jpg,png'                 // allowed MIMEs
            . '|max:1000'                                // max size in Kb
            . '|dimensions:min_width=100,min_height=200' // size in pixels
    ];

    $validator = Validator::make($request->all(), $rules);
    $result    = $validator->fails() ? 'QCFailed' : 'QCVerified';

    foreach ($request->images as $photo) {
        $filename    = substr($photo->store('public/uploadedImages'), 22);
        $filenames[] = asset('storage/uploadedImages/'.$filename);

        ProductsPhoto::create([
            'product_id'    => $product->id,
            'productId'     => $imagesProductId,
            'nonliveStatus' => $result,
            'filename'      => $filename
        ]);
    }

    return response()->json($filenames);
}
    
por Alexander Yancharuk 30.09.2017 / 10:55
fonte