在Zend Framework中显示图像

时间:2012-05-04 01:24:58

标签: zend-framework

我是Zend Framework的新手,如果这是一个基本问题,请原谅我,但我有一点时间,显示从数据库中检索到的图像。

编辑:我基本上无法访问/ public /文件夹中的任何资源。我猜测前端控制器正在重定向<link>标签和<img>标签内的src请求。每次我搜索时,我都会看到人们在访问/ public /文件夹之外的图像时遇到问题......但只要它们存储在/ public文件夹下,它们似乎就可以了。我做错了什么?

我在视图中获得了以下代码:

<?php
$user = Zend_Layout::getMvcInstance()->getView()->user;

?>
<section class="one-fifth first sidebar_profile">
  <div class="one-fifth first about_img"><img src="<?php if($user->picture){echo '/public/img/users/small_thumbs/'.$user->picture;}else{echo "#";}  ?>" alt="name"/>
      <p class="name"><?php  if($user) {echo $user->username; } else { echo "Username";} ?></p>

转储$user会给我以下内容:

object(Zend_Db_Table_Row)[70]
protected '_data' => 
array
  'userID' => string '22' (length=2)
  'username' => string 'test' (length=4)
  'firstName' => string '' (length=0)
  'lastName' => string '' (length=0)
  'email' => string 'test@google.com' (length=18)
  'password' => string '098f6bcd4621d373cade4e832627b4f6' (length=32)
  'picture' => string '4fa3072fe09a5.jpg' (length=17)
  'verified' => string '1' (length=1)
  'confirm_key' => null
  'admin' => null

它持续了很长一段时间,但关键是文件在那里。查看已呈现页面的源代码,有问题的行呈现为:

<img alt="name" src="/public/img/users/small_thumbs4fa3072fe09a5.jpg">

我应该使用某种视图助手来显示它吗?我搜索并搜索过,找不到一个。

1 个答案:

答案 0 :(得分:1)

从技术上讲,如果您使用框架,则不应该在视图中执行逻辑操作。您应该在Controller中执行if / else语句,并在View中执行:

<div class="one-fifth first about_img"><img src="$img"/></div>

但至于你的问题,如果你复制粘贴你的浏览器中的src属性,它是否显示图片?

这是我的.htaccess。它直接提供任何扩展名与此正则表达式匹配的文件,并将其他所有内容重定向到我的index.php,这是我的引导程序文件。

RewriteEngine On
RewriteRule \.(shtml|js|ico|gif|jpg|png|css|flv|swf|swz)$ - [NC,L]
RewriteRule ^.*$ index.php