随机 PHP 文件包含在 Laravel 中(blade 模板)

random PHP file includes in Laravel (blade template)

通常使用 PHP 这会很简单:

  1. 正在从磁盘读取文件列表和阵列
  2. 然后使用array_rand函数随机select任意一个文件
  3. 然后我可以使用 include 语句包含它

但是,我无法仅使用纯 PHP 在 blade 模板中模拟 Laravel 中的相同行为,我在这里缺少什么?

选择要包含的随机文件是应用程序逻辑,因此它应该远离您的视线。

在您的控制器中(不一定是最佳位置,取决于应用程序的大小等):

$views = [
    'random1',
    'random2',
    'random3'
];

return View::make('main', [
    'random' => View::make($views[mt_rand(0, count($views) - 1)])
]);

在您的 blade 模板中:

{{ $random }}

注意:这是针对 Laravel 4

我想到了这个。不是最佳的或任何但效果很好。

resources/views/includes/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];    
?>