2017-11-22 13 views
0

現在、イメージがページにロードされた後、ユーザーがイメージを削除した場合、ページが更新され、すべてのイメージが削除されるとエラーが画面に表示され、$ count変数は未定義です。ページが更新された場合、どうすればいいですか?一番下のフォームはcount変数を持つ必要がありますが、現在、その変数は最初のフォームの内側から来ているので、もう一方のフォームにはフォームを置くことができません。PHP Laravel 2つのフォームが変数を共有する

どうすればよいですか?イメージがない場合

{!! Form::open() !!} 
     ... Rest of form inputs 
     @if (count($project->getImages()) > 0)  
     @foreach ($project->getImages() as $count => $asset) 
      <div class="delete-toggle-container"> 
       <a href="#" data-form-submit="image-delete-{{ $count }}" class="text-danger image-delete-toggle" data-toggle="tooltip" data-placement="top" title="Delete This Image"><i class="fa fa-times-circle-o"></i></a> 
      </div> 
     @endforeach 
     @endif 
    {!! Form::close() !!} 

    {!! Form::open(['url' => '/route/resource/' . $project->id . '/images', 'method' => 'DELETE', 'id' => 'image-delete-' . $count]) !!} 
    {!! Form::hidden('image', $asset, ['readonly' => true]) !!} 
    {!! Form::close() !!} 
+0

$ count'画像がない場合は? – Camilo

+0

私は0を推測しています – user3732216

答えて

0

たぶん、あなたは$countを定義することができます。

@if (count($project->getImages()) > 0)  
    @foreach ($project->getImages() as $count => $asset) 
     // Some content here 
    @endforeach 
@else 
    <?php $count = 0; ?> 
@endif 

はそれはきれいではありませんが、それはうまくいくかもしれません。

+0

それは素晴らしいですが、私はまだ未定義の$ count変数をFormの下のフォームに開いているタグで同じ問題が発生します。私は$ countをやってみましたか?:0でもそれはうまくいきませんでした。 – user3732216

0

おそらく、ループの外側にあるforeachループを介して設定された変数に頼ってはいけません。ループが実行されず、イテレーターに何もない場合、その変数は設定されません。

また、ループですが、そのフォームを開くために必要な値として反復されたものから、最後の 'キー'をいつもしたいですか?それは意図ですか、実際に使用するためのカウントを取得しようとしていますか?同じ値で、その後ifforeachを交換する

側注、...:

@forelse (...) 
    iterating 
@empty 
    nothing to iterate 
@endforelse 

あなたが現在のインデックスなど、反復を取得するために利用できる$loop変数を持つループの内側にある場合... `の値がどうあるべきか。

​​

Laravel - Docs - Blade - The Loop Variable

関連する問題