2015-07-13 3 views
0

нормально с PHP это будет так легко, как:случайных PHP-файл включает в Laravel (шаблон лезвие)

  1. чтение списка файлов в и массив с диска
  2. затем с помощью функции array_rand выбрать любой один файл случайно
  3. тогда я мог бы включить его с помощью include о

Однако я не в состоянии подражать такое же поведение в Laravel в лопастной Templa т. е. используя только чистый PHP, чего я здесь не хватает?

+0

Мне кажется, что-то вроде этого не должно быть сделано в шаблоне в любом случае. Выбор файла случайного включения должен быть выполнен до того, как шаблон будет загружен, а затем передан в шаблон как переменная или даже в виде отдельного разобранного представления. –

ответ

0

Я придумал это. Не оптимальный или ничего, но работает хорошо.

ресурсы/виды/включает/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];  
?> 
0

Выбор случайного файла для включения - логика приложения, поэтому он должен оставаться в стороне от ваших взглядов.

В контроллере (не обязательно лучшее место, в зависимости от размера приложения и т.д.):

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

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

В шаблоне лезвия:

{{ $random }} 

Примечание: это для Laravel 4