我正在尝试让Lightbox使用Laravel框架,这有点棘手,我想在这里要求建议。目标是在页面上有一个可点击的图像,该图像又与灯箱的其余图像阵列有一个链接。
这是我的方法:
public function singleproperty(Properties $property)
{
$images = File::Files('images/property/' . $property->MLS_No);
$singleImage = reset($images);
return View::make('SingleProperty', compact('property', 'singleImage', 'images'));
}
以下是我的观点:
@foreach($images as $images)
<a href= "../{{ $images }}" rel='lightbox[image]' >
{{HTML::image("$singleImage", $alt='image', array('width' => '400') ) }}</a>
@endforeach
我在thee方法中使用了reset(),试图只获取目录中的第一个图像,但是获取第一个图像x目录中的图像数量。不是我想要的。此外,我可以删除视图中的foreach循环,只获取第一个图像,但灯箱找不到任何图像,将无法正常工作。
另外,我尝试在CSS包装器上使用一个绝对值,它可以工作,但是它首先得到的是最后一个图像,这也不是我想要的。
我有什么想法可以解决这个问题吗?
答案 0 :(得分:1)
3件事:
@foreach($images as $images)
可能有问题,您告诉PHP循环$images
,但也将该变量用作该数组中的单个项目。尝试将其更改为@foreach($images as $image)
。
您的$singleImage
仅包含第一张图片。因此,当你{{HTML::image("$singleImage", ... }}
时,无论你如何循环,你都会得到第一张图像。尝试将其更改为{{HTML::image("$image", ... }}
。
如果我理解正确,只应显示第一张图片,而其余图片必须在页面中才能使灯箱正常工作。所以我相信你可以将图像放在页面中,但隐藏它们。例如:
在您看来:
$firstImage = true;
@foreach($images as $images)
<a href="../{{ $image }}" rel="lightbox[image]" {{ $firstImage ? 'style="display: none"':'' }}>
{{HTML::image("$image", $alt="image", array("width" => 400)) }}
</a>
<?php $firstImage = false; ?>
@endforeach