2017-07-21 15 views
0

私はLaravelでcmsを作っています。ファイル入力と画像保存を動的に追加できます。動的入力フィールドで画像を更新する - Laravel

これは、画像を保存するために、私のHTMLとコントローラです:

<div v-for="file in files"> 
    <div class="textareaBlock"> 
     <label></label> 
     <input type="file" name="image[]"> 
    </div> 
</div> 

コントローラー:

$fileRequests = request()->file('image'); 

    if($fileRequests != NULL){ 
     foreach ($fileRequests as $fileRequest) { 
      $fileRequest->store('images', 'public'); 
      $file = new File; 
      $file->file = $fileRequest->hashName(); 
      $page->files()->save($file); 
     } 
    } 

今、私は、私はそれらのすべてを更新していないよ場合は、画像の更新トラブルを抱えています。 1つの画像をアップロードしている場合、エラー:不定オフセット1が発生します。これは、2つの入力フィールドのうち1つをアップロードしただけで、2つの要求のうち1つしか取得できないためです。 2つの入力フィールドのうち2つをアップロードしている場合、正常に動作しています。

これは、画像を更新するためのコードです:

$files = File::all()->where('page_id', $page->id); 
    $fileRequests = request()->file('image'); 

    $i=0; 
    foreach ($files as $file) { 

     $fileRequests[$i]->store('images', 'public'); 
     $file->file = $fileRequests[$i]->hashName(); 
     $i++; 

     $page->files()->save($file); 

    } 

だから私の質問は:私は毎回のすべてを更新していないよ場合どのように私はこの問題を解決することができます。あるいは、これを一般的に行うより良い方法がありますか? (私は想像することができます)事前

答えて

0

おかげで使用してみてください:

if (isset($fileRequests))

配列が存在するかどうかをチェックするとは対照的に、これは、その画像アレイISSETを見るためにチェックする必要があります - 定義されていないオフセット1は、配列要素が設定されているのではなく、現在存在しないことを通知しています。それ以外の場合は、画像が1つしかない場合に例外を作成する必要があります。

+0

問題を解決するためにif(isset($ filerequests [$ i]))を使用しました。あなたの答えをありがとう! – MVG

関連する問題