Php 使用Laravel 4刀片模板获取图像大小

Php 使用Laravel 4刀片模板获取图像大小,php,laravel,Php,Laravel,如何使用Laravel 4的刀片模板使用getimagesize 我有以下foreach循环: @foreach($category as $inventory) {{ HTML::image('small/' . $inventory->image . '', '' . $inventory->name . '', array('class' => 'scale-with-grid', 'height' => '280', 'width' => 'auto'

如何使用Laravel 4的刀片模板使用getimagesize

我有以下foreach循环:

@foreach($category as $inventory)
   {{ HTML::image('small/' . $inventory->image . '', '' . $inventory->name . '', array('class' => 'scale-with-grid', 'height' => '280', 'width' => 'auto')); }}

@endforeach
我希望
getimagesize
函数在
height
width
图像属性中显示该特定图像的高度和宽度。每次我都试图自己做,但无法让它正常工作

编辑

这就是我迄今为止所尝试的。我想我最大的问题是我不知道如何访问我的公共目录中的小文件夹。我尝试使用public_path,但它返回了一个数组到字符串的转换错误。然而,当我转储公共路径时,它似乎显示了正确的路径

{{ $image = getimagesize(public_path('small/' . $inventory->image . '')) }}

{{ var_dump($image); die; }}
我正在使用wamp,当我转储公共路径时,这是我得到的第一个源

string 'C:\wamp\www\product\public/small/image.jpg' (length=71)
我不确定这是否是问题所在。当我复制并粘贴到浏览器中时,它将毫无问题地加载图像

list($width, $height) = getimagesize("Full path of the image"); 

现在可以使用$width和$height

我能够通过不使用刀片支架和插入

   <?php list($width, $height) = getimagesize(asset('small/' . $inventory->image . ''));  ?>

   {{ HTML::image('small/' . $inventory->image . '', '' . $inventory->name . '', array('class' => 'scale-with-grid', 'height' => 280, 'width' => $width)); }}

{{HTML::image('small/'.$inventory->image'.'.'.$inventory->name'.',数组('class'=>'按网格缩放','height'=>280,'width'=>$width));}

我建议不要在控制器中编写这样的代码。如果您需要在其他地方重复此操作(大多数情况下都是这样),那么将其写入控制器是一个坏主意。让你的控制器简单。我可能会在我的存储库或类似的地方解决这个问题。。。但如果它是一个小项目,我建议定义HTML::macro

HTML::macro('imageWithSize', function($url, $alt = null, $attributes = array(), $secure = null)
{
    // original - HTMl::image($url, $alt = null, $attributes = array(), $secure = null);

    // get image path  - change this to whatever suits you
    $image_path = public_path($url);

    // get image size 
    list($width, $height) = getimagesize($image_path);
    // add those to attributes array
    $attributes['width'] = $width;
    $attributes['height'] = $height;

    return HTML::image($url, $alt, $attributes, $secure );
});

您可以看到HTML::image的原始实现

如何在控制器中获得所需的信息?我同意@sikhlana。没有理由不在控制器中执行此操作,并将信息作为数组的一部分传递给刀片模板。我不确定在刀片模板中使用foreach循环时如何通过控制器传递此信息。我认为这会起作用。但是我得到一个数组到字符串的转换错误。不确定发生这种情况的原因。问题是{{}与类似,但getimagesize返回的数组大小为7。我希望你能理解问题所在:)