PHP / TWIG:for循环构建HTML div

时间:2013-08-21 08:58:14

标签: php symfony twig assetic

我来自ASP.NET MVC,以下内容很容易实现。我想知道如何用PHP和TWIG完成它。

我想动态构建一系列HTML div。 div看起来像这样:

<div class="grid_gallery-item">               
    <img src="img/gallery/gallery_grid1.jpg" alt=""/>                       
    <a href="img/gallery/gallery_grid1.jpg"></a>
 </div>

对于每个div,图像的src属性以及超链接的href应该是不同的。我想在for循环中执行它,使用增量器来更改src和href路径。

另一个难点是我使用assetic(symfony2)作为我的路径。所以src属性和href属性实际上就像:

{{asset('img/gallery/gallery_grid1.jpg')}}

我该怎么做?

2 个答案:

答案 0 :(得分:3)

使用

{% for div in divs %}
    <div class="grid_gallery-item">               
        <img src="{{ div.src }}" alt=""/>                       
        <a href="{{ div.href }}"></a>
    </div>
{% endfor %}

这里是php代码

    $array = array(
      array('src' => 'image here',
            'href' => 'link here'),
      array('src' => 'image here',
            'href' => 'link here'),

    );
$twig->render('page.twig', array('divs' => $array));

答案 1 :(得分:1)

从未使用过资产,但我认为您应该可以使用PHP alternative syntax轻松完成。

<?php $myArray = array('1','2','3'....); //this can store full image paths also?>

<?php foreach($myArray as $item): ?>
<div class="grid_gallery-item">               
    <img src="{{asset('img/gallery/gallery_grid<?php echo $item; ?>.jpg')}}" alt=""/>                       
    <a href="{{asset('img/gallery/gallery_grid<?php echo $item; ?>.jpg')}}"></a>
</div>
<?php endforeach; ?>

我希望它有所帮助。如果您需要更多详细信息,请与我们联系。

<强>更新 要从目录中读取每个文件,请使用以下命令:

<?php 
$dirname = 'dirname'; 
$directory = new DirectoryIterator(dirname(__FILE__).'/../'.$dirname); //modify path to your needs 
?>

<?php foreach($directory as $file): 
         if(!$file->isDot()): ?>
   <div class="grid_gallery-item">               
        <img src="{{asset('<?php echo $dirname.'/'.$file->getFilename(); ?>')}}" alt=""/>                       
        <a href="{{asset('<?php echo $dirname.'/'.$file->getFilename(); ?>')}}"></a>
   </div>
 <?php endif;
     endforeach; ?>

我没有试过这部分,但它应该有用。只需根据您的需要进行修改。