我是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">
我应该使用某种视图助手来显示它吗?我搜索并搜索过,找不到一个。
答案 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