これはちょっとしたハックかもしれませんが、他に良い方法がない限り...
ヘルパー関数またはオブジェクトのいずれかが必要になります(最も簡単な方法は、それをモデルに配置することです)。デモンストレーションのために、オブジェクト バリアントを選択しました。これは、処理が少し簡単で、何よりもニーズに合わせて拡張しやすいと信じているためです。また、値はオブジェクトごとに保存されるため、これは複数のカウンターを暗黙的にサポートします (関数でこの機能を取得するには、いくつかのフープをジャンプする必要があります)。
class Counter
{
private $count = 0;
public function inc()
{
return ++$this->count;
}
}
したがって、この特定の実装では、どこかに作成する必要があります。サブビューを含める前に、このような行を親ビューのどこかに配置するか、with()
メソッドを使用して PHP から挿入することができます。
<?php $counter = new Counter(); ?>
いつものようにサブビューを含めます (変数を保持するためにinclude
、 ではなくを使用することを忘れないでください)テストのためにループを使用しましたが、もちろん、必要なバリアントを使用することもできます。render
$counter
for
@for($i=0; $i<10; $i++)
@include('home.sub')
@endfor
そして最後に、サブビューでこれを呼び出すことができます
<span>{{ $counter->inc() }}</span>
このモデルをファクトリで簡単に拡張して、アプリケーションのどこからでもカウンター値を取得できますが、ユースケースでは、この基本的なバリアントで十分です。