2016-07-07 3 views
0

젠드 프레임 워크에서 phtml 파일을 사용하고있었습니다. 이제 .tpl 파일을 사용하고 있습니다. html 스크립트와 모든 것을 사용하는 방법을 찾았습니다. 하지만 내가 PHP 코드를 사용하고 싶을 때. 그런 다음 사용하고 있습니다 :레이아웃 zend framework2에서 컨텐츠를 검색하는 방법은 무엇입니까?

<?php 
    echo "test"; 
    echo $this->content; 
?> 

이 문제는 layout.tpl 파일에 있습니다. 주요 내용은 다른 모듈의 index.tpl에 있습니다.

색인 파일의 내용을 가져 오는 대신 "테스트"라는 내용 만 표시됩니다. 어떻게 작동합니까?

편집 : 나는 또한 {$this->content}을 시도했다.

+0

"php"가 아닌'Smarty' 문법을 사용해야 할 수도 있습니다. – newage

+0

내가이 구문의 제안을 얻는다면 : – Shashikala

+0

내가 PHP를 가지고있다 : Smarty : {$ foo} – Shashikala

답변

1

Smarty 템플릿 엔진과 SmartyModule을 사용하는 경우 Zend\View\Renderer\PhpRenderer이 Smarty Renderer (및 Smarty 템플릿 엔진)에 의해 무시되므로보기 스크립트에서 Smarty 구문을 사용해야합니다. 또한 Smarty에서 레이아웃을 사용하려면 Smarty's Template Inheritance 메커니즘을 참조하십시오. 다음은 예입니다

layout.tpl

<html> 
<head> 
    <title>{block name=title}Default Page Title{/block}</title> 
</head> 
<body> 
{block name=body}{/block} 
</body> 
</html> 

mypage.tpl

{extends file="layout.tpl"} 
{block name=title}My Page Title{/block} 
{block name=body}My HTML Page Body goes here{/block} 

그렇지 않으면 당신이 PhpRenderer를 사용하는 경우,이 경우에도, 어떤 템플릿 언어를 "인식"하지 않습니다 보기 스크립트의 내용을 include (렌더러의 source code의 502-503 행 참조)으로 간단하게 변경하므로 뷰 스크립트의 파일 확장명을 .tpl로 변경합니다. 따라서 include과 마찬가지로 PHP 코드가 즉시 실행되어 렌더러의 $__content 속성에 저장됩니다. 이것은 아마도 귀하의 echo 명령이 즉시 실행되는 이유입니다.

기본적으로 렌더러 (PhpRenderer 또는 SmartyModule을 통해 Smarty 렌더러)를 선택한 다음 내부 동작 (PHP/HTML 또는 Smarty 구문 (예 : variables))을 준수해야합니다.

관련 문제