ビューファイル上のforeach処理で「これは除外したい」項目があったら、@ifの中で、@continueを使えばスキップできます。
@ifをいれず、@continue(条件式)でもOK。
「ある番号までは表示したい」という場合は、@breakが使えます。
実際のコードを使って紹介していきますね。
Laravel ビューファイルのforeachの処理で例外を入れる方法
たとえば、$testの名前を順番に表示したいとします。
ですが、ある条件に見合うものだけは表示したくない場合。
下記のように記述します。
<ul>
@foreach($tests as $test)
@if($test->id==$exam->id)
@continue
@else
<li>{{$test->name}}</li>
@endif
@endforeach
</ul>
@foreach($tests as $test)
@if(条件式)
@continue
@else
{{$test->name}}
@endif
@endforeach
条件式に合った部分はスキップされて、foreachの結果が表示されます。
なお@ifは省略して@continueだけでもOK。
上記のコードは、次のように記述できます。
<ul>
@foreach($tests as $test)
@continue($test->id==$exam->id)
<li>{{$test->name}}</li>
@endforeach
</ul>
@foreach($tests as $test)
@continue(条件式)
{{$test->name}}
@endforeach

じゅんこ
むちゃくちゃ省エネ!
Laravel ビューファイルのforeachの処理を途中で止める方法
foreach処理を途中でとめたい場合には、@continueではなく、@breakを使います。
たとえば $test->idが3で処理を止めるときは、下記のようにします。
<ul>
@foreach($tests as $test)
@if($test->id==3)
@break
@else
<li>{{$test->name}}</li>
@endif
@endforeach
</ul>
@foreach($tests as $test)
@if(条件式)
@break
@else
{{$test->name}}
@endif
@endforeach
もちろんこれも、@ifを抜かして、次のように省エネ記述が可能。
<ul>
@foreach($tests as $test)
@break($test->id==3)
<li>{{$test->name}}</li>
@endforeach
</ul>
@foreach($tests as $test)
@break(条件式)
{{$test->name}}
@endforeach

じゅんこ
省エネ機能を役立てていきましょう♪


コメント