2016-08-10 3 views
0

私は、ユーザーが3つのファイルをアップロードできるフォームを持っています。ここでリクエストの検証、エラーの表示方法?

は、コントローラの関数が呼び出される:

public function registerUpdate(CardAvsRequest $request){ 
     $id = Auth::user()->id; 
     $first_name = User::find($id)->student->first_name; 
     $last_name = User::find($id)->student->last_name; 
     $name = $first_name . " " . $last_name; 
     $message = ""; 
     if ($request->hasFile('carte-id')) 
     { 
      $image1 = $request->file('carte-id'); 
      if($image1->isValid()) 
      { 
       if ($request->hasFile('avs')) 
       { 
        $image2 = $request->file('avs'); 

        if($image2->isValid()) 
        { 
         if ($request->hasFile('permit')) 
         { 
          $image3 = $request->file('permit'); 

          if($image3->isValid()) 
          { 
           $path = config('card.path')."/$id"; 
           $name = "carte-id.".$image1->getClientOriginalExtension(); 
           $image1->move($path, $name); 
           $path = config('card.path')."/$id"; 
           $name = "avs.".$image2->getClientOriginalExtension(); 
           $image2->move($path, $name); 
           $path = config('card.path')."/$id"; 
           $name = "permit.".$image3->getClientOriginalExtension(); 
           $image3->move($path, $name); 
           $message = "Super ! Vous avez importé tous les fichiers nécessaires."; 
           //ici on dit dans la DB que l'utilisateur à uploadé tous les fichiers 
          } 
         } 
        } 
       } 
      } 

     } 
     return redirect()->route('account', $id)->with('message', $message); 
    } 

だから、バリデーションルールがCardAvsRequest.phpに設定されています

class CardAvsRequest extends Request 
{ 
    /** 
    * 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 [ 
      'carte-id' => 'mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000', 
      'avs' => 'mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000', 
      'permit' => 'mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000', 
     ]; 
    } 
} 

私は、ファイルのISNする場合にエラーを表示する方法を知っていただきたいと思います」検証されました。

このように動作するはずはありませんか?

@if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     <ul> 
      @foreach ($errors->all() as $error) 
       <li>{{ $error }}</li> 
      @endforeach 
     </ul> 
    </div> 
@endif 

答えて

0

Laravel 5.2入力の検証とエラーがあればそれを返す方法の提案です。見栄えが良く、発生した場合はエラーが表示されます。

public function store(Request $request) 
    { 
    $rule = 'required|file|mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000'; 

     $validator = Validator::make($request->all(), [ 
      'file_one' => $rule, 
      'file_two' => $rule, 
      'file_three' => $rule, 
     ]); 

     if ($validator->fails()) { 
      return redirect('account') 
        ->withErrors($validator) 
        ->withInput(); 
     } 

    // no errors proceed managing your files 

    } 
0

はいますが、その場合には、あなたがそのコードに置く必要があることを覚えている:フォームファイルに

@if (count($errors) > 0) 
<div class="alert alert-danger"> 
    <ul> 
     @foreach ($errors->all() as $error) 
      <li>{{ $error }}</li> 
     @endforeach 
    </ul> 
</div> 
@endif 

を。

関連する問題