我来自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')}}
我该怎么做?
答案 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; ?>
我没有试过这部分,但它应该有用。只需根据您的需要进行修改。