2017-05-17 11 views
1

Mein Fall ist wie folgt:Wie kann ich Array in Laravel 5.3 validieren?

Meine Ansicht:

{!! Form::open(['url' => 'product/store', 'class'=>'form-horizontal', 'method'=>'POST', 'files' => true]) !!} 
    ... 
    <input type="file" class="form-control" name="photo[]" multiple> 
    ... 
{!! Form::close() !!} 

Mein Controller:

public function store(CreateProductRequest $request) 
{ 
    dd($request->all()); 
    ... 
} 

ich hier erforderlich Set:

<?php 
namespace App\Http\Requests; 
use Illuminate\Foundation\Http\FormRequest; 
class CreateProductRequest extends FormRequest 
{ 
    public function authorize() 
    { 
     return true; 
    } 
    public function rules() 
    { 
     return [ 
      'name'=>'required', 
      ... 
      'photo[]'=> 'required|mimes:jpeg,bmp,png,jpg|max:7024', 
     ]; 
    } 
} 

Wenn der Name Array ist, es funktioniert nicht

Wenn ich auf "Senden" klicke, wird es zurück zum Formular hinzugefügt.

Wie kann ich dieses Problem lösen?

+1

try: '‚Foto‘=>‚erforderlich ',' Foto. * '=>' Mimen: jpeg, bmp, png, jpg | max: 7024 ', ' –

Antwort

1

Wenn Sie ein Array Formularfeld validieren, Sie alle Nachrichten für jeden der Array-Elemente abrufen kann das Zeichen * verwendet:

'photo.*' => 'required|mimes:jpeg,bmp,png,jpg|max:7024' 
0

'Foto' => 'erforderlich | array', 'Foto *.' => 'Mimt: JPEG, BMP, PNG, JPG | max: 7024'

0

Für Assoc Array wie:

$skills = [['id'=> 1, 'name' => 'photoshoot', photo => File], ['id'=>2, 'name'=> 'someskill', photo => File]]; 

Für Validate in DB Gültigkeitsregel wird wie folgt sein:

'skills.*.id' => 'required|exists:skills,id', 
'skills.*.photo' => 'required|mimes:jpeg,bmp,png,jpg|max:7024' 
1

dies tun. Es wird klappen.

'photo.*' => 'required|mimes:jpeg,bmp,png,jpg|max:7024' 
Verwandte Themen