2016-07-18 14 views
2

私のブレードコードでは、foreachループの一意のIDによってレンダリングされるdivを与えるためにカウンタが必要です。そのために、私はこのように私のブレードテンプレートで変数を作成しました:私はちょうど上、後{{ $counter = 0 }}laravelのブレード変数を表示せずに変更する

し、それを出力することにより、HTMLでそれを使用する

{{ $counter = 0 }} 

、私はこのようにそれをインクリメント:{{ $counter++ }}

{{ $counter++ }}で変数をインクリメントするだけでなく、ビューにも出力することを除いて、すべてが魅力的です。

これを防ぐ方法はありますか?

+0

Laravel 5.3で@if($ loop-> first) 最初の繰り返しで何かをします。 @endif @if($ loop-> last) 最後の繰り返しで何かをします。 @ endif' –

+1

それはすばらしい機能ですが、実際には、配列内の各項目の番号が必要です。私は、ループ変数についての多くのドキュメントを見つけることができませんでした。 – ErikL

+1

悪いですが、動作中のバージョン '<?php $ counter ++ ;?>' –

答えて

1

私はブレード上の変数を設定するのです。この拡張機能を使用します。 https://github.com/RobinRadic/blade-extensions

あなたは@set($カウント、1)、またはあなたが望む任意の値のような単純な使用することができます。最初のブレードのテンプレートにロジックを追加することで

1

は悪い習慣ですが、時には私たちは、あなたはこのようにそれのためのPHPタグを使用することができ、その場合には、行うことを余儀なくされています。別の方法に

<?php $counter++; ?>

Laravel 5.4でdocsと表示されます。

状況によっては、PHPコードをビューに埋め込むことが便利です。あなた は、あなたのテンプレート内のプレーンPHP のブロックを実行するためにブレード@phpディレクティブを使用することができます。

@php 
    $counter++; 
@endphp 

あなたはこのような@foreachにそれを使用することができ、配列のキーで、あなたのポジションを持っている場合:

@foreach ($variable as $key => $value) 
    //current position = $key 
    # code... 
@endforeach 
関連する問題