2013-01-04 53 views
3

我剛剛開始使用Laravel並致力於將混亂的網站移植到框架。向Laravel的每個視圖注入隨機變量

該網站的一個功能是標題中動態添加的圖像。我正在使用一個通用的Blade模板,並且想知道是否有任何方法將注入隨機變量(1到4之間的整數)應用到使用該佈局的每個View中。

我想什麼做的是能夠在共同的模板 -

<img src="img/cutouts/cutout-<?= $randomInt;?>.jpg" alt=""/>

$randomInt發送到每一個視圖中添加東西,像這樣

+1

發現我可以做到這一點 - '<= HTML ::圖像( 'IMG /切口/剪窗 - ' 蘭特(?。 1,4)。'。png','',array('id'=>'headerImage'));?>',可以接受嗎? – NightMICU

回答

2

你可以看看View composers

所以你會有這樣的事情:

View::composer('your.view', function($view) 
{ 
    $view->with('randomInt', rand(1,4)); 
} 

這會在每次使用'your.view'(或其他)View時傳遞$ randomInt變量。

+1

我知道我忘記了某處的某個功能。這和我的評論中的解決方案基本上是一樣的,但這是更高級的事情的關鍵知識..謝謝! – NightMICU

4

也可以通過View::share()將變量添加到所有視圖。

例如,可以修改__construct方法在Base_Controller與:

View::share('randomInt', rand(1,4));