2017-05-17 56 views
1

我的情況下是這樣的:如何驗證laravel 5.3中的數組?

我的觀點:

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

我的控制器:

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

我在這裏設定所需要:

<?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', 
     ]; 
    } 
} 

當名稱爲陣列,它不起作用

當我點擊提交時,它會回到表格添加

我該如何解決這個問題?

+1

嘗試:'「照片」 =>「所需','photo。*'=>'mimes:jpeg,bmp,png,jpg | max:7024',' –

回答

1

如果要驗證以陣列形式字段,可以檢索所有消息的每個使用*字符數組元素:

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

'照片'=> '所需|陣列', '照片*。'=> '默劇:JPEG,BMP,PNG,JPG |最大值:7024'

0

對於ASSOC陣列等:

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

對於DB驗證規則驗證將是這樣的:

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

執行此操作。它會工作。

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