0

我来自 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>

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

另一个困难是我使用资产(symfony2)作为我的路径。所以 src 属性和 href 属性其实是这样的:

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

我怎样才能做到这一点 ?

4

2 回答 2

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));
于 2013-08-21T09:05:56.043 回答
1

从未使用过资产,但我认为您应该能够使用 PHP替代语法轻松地做到这一点。

<?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; ?>

我还没有尝试过这部分,但它应该可以工作。只需根据您的需要进行修改。

于 2013-08-21T09:08:21.767 回答