質問編集履歴

2 追記部分を足しました。

Clavat

Clavat score 92

2021/03/10 16:03  投稿

Laravel初学者です。
この「ループ変数($loop)」とそのプロパティ(->firstとか->lastとか)が使えるのは、**@foreachディレクティブと@forelseディレクティブ限定という理解で良いのでしょうか?**
Laravelのループ変数「$loop」について、
公式ドキュメント「繰り返し」の部分
[https://readouble.com/laravel/8.x/ja/blade.html](https://readouble.com/laravel/8.x/ja/blade.html)
には、
> Tip!! ループするときは、ループ変数を使用して、ループの最初の反復か最後の反復かなど、ループに関する重要な情報を取得できます。
とあります。
このドキュメントでいう「ループ」とは、forやwhileなどのループを含んだ意味ではなく、**@foreachと@forelseのループだけ使用できるということ**なんですね。  
@forディレクティブや@whileディレクティブでの繰り返しで「$loop」を使おうとするとエラーになるので質問しました。
例えば・・・
```blade
   @for($i=1; $i<10; $i++)
       @if($loop->first)
       表示するよ
       @endif
   @endfor
```
⇒$loop is undefinedのエラーが出力。
使えない理由というと、大げさだと思いますが、その辺りも補足していただけると嬉しいです。
使えない理由というと、大げさだと思いますが、その辺りも補足していただけると嬉しいです。
[追記]
コメントにも記載しましたが、質問時点では、このような認識でした。
①ドキュメントの「ループするときは、ループ変数を使用して、・・・・ループに関する重要な情報を取得できます」
②ということは@for、@while、@foreach、@forelseの「全てのループ」でループ変数$loopが使えるということか! ←このように認識したのがダメだった
③@for、@whileではエラー($loopなんてない)になった。@foreach、@forelseでは使えた。
④ん?@foreach、@forelse限定なの? ループで使えると書いてあるのに?!
⑤質問してみようとなった。
結果、このドキュメントでいう「ループ」とは、forやwhileなどのループを含んだ意味ではなく、**@foreachと@forelseのループだけ使用できる実装がされているということ(サンプルはforeachしか示されていないから)**なんですね。
回答・アドバイスをいただいた皆様、レベルの低い話に長々とお付き合いいただきありがとうございました。
同じように思われた方が日本のどこかにおられて、この質問が役に立てば幸いです。
  • Laravel

    4679 questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

1 「ループ」とは、forやwhileなどのループを含んだ意味ではない という理解を追加。

Clavat

Clavat score 92

2021/03/10 15:51  投稿

ループ変数$loopは、@foreachと@forelseディレクティブ限定ですか?
Laravel初学者です。
この「ループ変数($loop)」とそのプロパティ(->firstとか->lastとか)が使えるのは、**@foreachディレクティブと@forelseディレクティブ限定という理解で良いのでしょうか?**
Laravelのループ変数「$loop」について、
公式ドキュメント「繰り返し」の部分
[https://readouble.com/laravel/8.x/ja/blade.html](https://readouble.com/laravel/8.x/ja/blade.html)
には、
> Tip!! ループするときは、ループ変数を使用して、ループの最初の反復か最後の反復かなど、ループに関する重要な情報を取得できます。
とあります。
 
このドキュメントでいう「ループ」とは、forやwhileなどのループを含んだ意味ではなく、**@foreachと@forelseのループだけ使用できるということ**なんですね。  
@forディレクティブや@whileディレクティブでの繰り返しで「$loop」を使おうとするとエラーになるので質問しました。
例えば・・・
```blade
   @for($i=1; $i<10; $i++)
       @if($loop->first)
       表示するよ
       @endif
   @endfor
```
⇒$loop is undefinedのエラーが出力。
使えない理由というと、大げさだと思いますが、その辺りも補足していただけると嬉しいです。
  • Laravel

    4679 questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る