0
通常與PHP因爲這將是容易:隨機PHP文件包括Laravel(葉片模板)
- 從磁盤讀取
- 然後使用
array_rand
函數來選擇任何文件的列表到與陣列一個文件隨機 - 然後我可以將它包括使用
include
聲明
但是我不能夠在刀片templa內仿效Laravel相同的行爲使用純粹的PHP,我在這裏錯過了什麼?
通常與PHP因爲這將是容易:隨機PHP文件包括Laravel(葉片模板)
array_rand
函數來選擇任何文件的列表到與陣列一個文件隨機include
聲明但是我不能夠在刀片templa內仿效Laravel相同的行爲使用純粹的PHP,我在這裏錯過了什麼?
我想出了這個。不是最優的或任何東西,但效果很好
資源/視圖/包括/ random.blade.php
<?php
$winners = array(
'<div class="col-md-7">
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="//www.youtube.com/embed/QabnXJC07AM?modestbranding=1&rel=0&showinfo=0" allowfullscreen=""></iframe>
</div>
</div>
<div class="col-md-5">
<h3>RANDOM1</h3>
<p class="lead">By <b>RANDOM1</b>
<br>
<br> from <b><small>sadasdasd,asdasdasd,asdasdasd</small></b>
</p>
<div class="row">
<div class="col-sm-12">
<p><b><i class="fa fa-5x fa-trophy" style="color:#FFD700; text-shadow: 2px 1px 1px #ccc;"></i> <span style="font-size: 2.5em;">5<sup>th</sup></span> eYRTC-2014</b>
</p>
</div>
</div>
</div>',
'<div class="col-md-7">
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="//www.youtube.com/embed/z5Srn_AQk_U?modestbranding=1&rel=0&showinfo=0" allowfullscreen=""></iframe>
</div>
</div>
<div class="col-md-5">
<h3>Care RANDOM2</h3>
<p class="lead">By <b>RANDOM2</b>
<br>
<br> from <b><small>sfasdfaffd,fasdfdaf,adsfafafafd,afds</small></b>
</p>
<div class="row">
<div class="col-sm-12">
<p><b><i class="fa fa-5x fa-trophy" style="color:#FFD700; text-shadow: 2px 1px 1px #ccc;"></i> <span style="font-size: 2.5em;">6<sup>th</sup></span> eYRTC-2014</b>
</p>
</div>
</div>
</div>'
);
$random_keys=array_rand($winners,1);
echo $winners[$random_keys];
?>
選擇一個隨機文件來包含應用程序邏輯,所以它應該遠離你的視圖。
在你的控制器(不一定是最好的地方,取決於應用程序的大小等):
$views = [
'random1',
'random2',
'random3'
];
return View::make('main', [
'random' => View::make($views[mt_rand(0, count($views) - 1)])
]);
在刀片的模板:
{{ $random }}
注:這是Laravel 4
在我看來,這樣的事情不應該在模板反正做。選擇一個隨機包含文件應該在模板加載之前完成,然後作爲變量傳遞給模板,甚至作爲單獨的分析視圖傳遞給模板。 –