2016-11-06 21 views
0

私は、ユーザーのニーズに基づいて写真をアップロードする必要がある状況に陥っています。ユーザーは、1つ、2つ、または3つ以上の++の子を持つことができます。だから彼の子供の画像をアップロードするときにforループを使用しています。ここに私の形式は次のとおりです。forループを使用したLaravel複数の画像のアップロード

@for($i=1;$i<=$ticket->children_count;$i++) 
    <div class="form-group"> 
     <label for="">Child {{ $i }} Name:</label> 
     <input type="text" name="child_name_{{$i}}" value="" required="" class="form-control"> 
    </div> 
    <div class="form-group"> 
     <label for="">Child {{ $i }} Photo:</label> 
     <input type="file" name="child_picture_{{$i}}" value="" required=""> 
    </div> 
@endfor 

私はバックエンドからのファイルを受信したいが、何とか私はnullを取得しています。ここ コントローラ内部forループである:

for ($i=1; $i <= $ticket->children_count ; $i++) { 
      $file = $request->file("child_picture_.$i"); 
      dd($request->child_name_.$i); 
} 

上記のコードは、$ Iの値だけを返します。ファイルを正しく受信するにはどうすればよいですか?

dd($request->child_name_.$i); 
// php thinks that you are providing two variables: 
// $request->child_name_ and $i 

へ:

dd($request->{'child_name_'.$i}); 
// makes sure php sees the whole part 
// as the name of the property 

編集

とするために、それはあなたが以下のように置き換える必要があり

答えて

0

などchild_name_1またはchild_name_2child_picture_1またはchild_picture_3のようなものである必要がありますファイル、置き換え:

$file = $request->file("child_picture_.$i"); 

へ:

$file = $request->file("child_picture_" . $i); 
+0

これは名前のために働いたが、$ request-> file()の部分の中での出力方法は? –

+0

私の更新された答えを見てください。 –

+0

本当にありがとうございました。これは本当に助けになりました –

0

恐れ入りますが、複数のファイルのためにあなたは、このようなアレイ(保守性、可読性)、使用する必要があります。

@for($i=1;$i<=$ticket->children_count;$i++) 
<div class="form-group"> 
    <label for="">Child {{ $i }} Name:</label> 
    <input type="text" name="child_names[]" value="" required="" class="form-control"> 
</div> 
<div class="form-group"> 
    <label for="">Child {{ $i }} Photo:</label> 
    <input type="file" name="child_pictures[]" value="" required=""> 
</div> 
@endfor 

そして、あなたのコントローラのチェック中リクエストには次のようなファイルがあります。

if ($request->hasFile('child_pictures')) { 
    $files = $request->file('child_pictures'); 

    foreach($files as $file) { 
     var_dump($file); // dd() stops further executing! 
    } 
} 
関連する問題