2012-05-04 2 views
0

저는 젠드 프레임 워크를 처음 사용합니다. 기본 질문 인 경우 용서해 주시길 바랍니다.하지만 데이터베이스에서 검색된 이미지를 표시하는 시간이 있습니다.젠드 프레임 워크에 이미지 표시

편집 : 기본적으로/public/폴더의 모든 리소스에 액세스 할 수 없습니다. 전 프론트 컨트롤러가 <link> 태그와 <img> 태그 안에 src 요청을 리디렉션하고 있다고 생각합니다. 검색 할 때마다/public/폴더 외부의 이미지에 액세스하는 데 문제가있는 사용자를 보았습니다. 그러나/public 폴더 아래에 저장되어있는 한 괜찮은 것처럼 보입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

나는 부분 뷰에서 다음과 같은 코드를 가지고 :

그것은 꽤에 간다
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 '[email protected]' (length=18) 
    'password' => string '098f6bcd4621d373cade4e832627b4f6' (length=32) 
    'picture' => string '4fa3072fe09a5.jpg' (length=17) 
    'verified' => string '1' (length=1) 
    'confirm_key' => null 
    'admin' => null 

하지만 포인트 :

<?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의 덤프를하는 것은 나에게 다음을 제공합니다 거기에 파일이 있습니다.

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

내가이 표시보기 도우미의 일종을 사용해야합니다 렌더링거야 페이지에서 소스 코드를 보면, 문제의 라인으로 렌더링? 나는 수색하고 찾았고 찾을 수 없었다.

+0

가상 호스트를 사용하고 있습니까? 일반적으로 프론트 엔드 URL에는/public이 없습니다. 'public'은 가상 호스트 정의의 일부가됩니다. –

+0

예./public/폴더는 doc 루트로 설정됩니다./public/without/with와 함께 사용해 보았지만 여전히 작동하지 않습니다. 절대적인 정의를 내렸을 때도 사이트의 어느 곳에서나 이미지에 액세스 할 수 없습니다. (또는'@ import'를 사용하지 않는 한 css) –

+0

웹 루트의 표준'.htaccess'는 실제로 존재하는 모든 파일/디렉토리의 프레임 워크를 우회합니다 .' http : // yourhostname/img/users/small_thumbs4fa3072fe09a5를 입력하면 .jpg'을 브라우저에 넣으면 이미지를 얻지 못하겠습니까? 또 다른 생각 : 'small_thumbs'는 폴더입니까? 그렇다면 슬래시가 누락되어 올바른 URL은/img/users/small_thumbs/4fa3072fe09a5가됩니다. jpg' –

답변

1

기술적으로 프레임 워크를 사용하는 경우보기에 논리를 사용하면 안됩니다. 브라우저에서 src 속성을 붙여 복사 할 경우

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

은 그러나 귀하의 질문에 간다에 관해서는, 그것은 그림을 보여 않습니다 당신은 간단하게 할 당신의 컨트롤러와 뷰의 경우/else 문을해야합니까?

이것은 나의 .htaccess입니다. 이 정규 표현식과 일치하는 확장자를 가진 파일을 직접 처리하고 다른 모든 파일을 내 부트 스트랩 파일 인 index.php로 리디렉션합니다.

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

공개가 없습니다 컨트롤러 및 ZF 자동 리디렉션 모든 req 그 디렉토리에 유익합니다. 그래서 평소처럼 플러그를 꽂을 방법이 없습니다. 그래서 이미지를 처리 ​​할 도우미가 있는지 물었습니다. 기록을 위해 나는 물리적으로 이미지가 있는지 확인할 수 있습니다. 그리고 그렇습니다. –

+0

소스가 올바르게 렌더링되고 이미지가 별도로 표시되지만 렌더링 된 페이지에는 표시되지 않습니다. –

+0

또한 if/else 논리는 약 50 개의 컨트롤러에서 수백 페이지에 적용됩니다. 그리고이 논리는 부분적이지보기 자체가 아닙니다. –

관련 문제