ビューファイル上のforeach処理で「これは除外したい」項目があったら、@ifの中で、@continueを使えばスキップできます。
@ifをいれず、@continue(条件式)でもOK。
「ある番号までは表示したい」という場合は、@breakが使えます。
実際のコードを使って紹介していきますね。
Laravel ビューファイルのforeachの処理で例外を入れる方法
たとえば、$testの名前を順番に表示したいとします。
ですが、ある条件に見合うものだけは表示したくない場合。
下記のように記述します。
1 2 3 4 5 6 7 8 9 |
<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。
上記のコードは、次のように記述できます。
1 2 3 4 5 6 |
<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で処理を止めるときは、下記のようにします。
1 2 3 4 5 6 7 8 9 |
<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を抜かして、次のように省エネ記述が可能。
1 2 3 4 5 6 |
<ul> @foreach($tests as $test) @break($test->id==3) <li>{{$test->name}}</li> @endforeach </ul> |
@foreach($tests as $test)
@break(条件式)
{{$test->name}}
@endforeach
じゅんこ
省エネ機能を役立てていきましょう♪