2013-01-15 2 views
1

확인. 나는 뷰 엔진으로 나뭇 가지를 사용하고 팔콘 버전은 0.8Phalcon에서 Twig를 사용하여 상속을 구현하는 방법은 무엇입니까?

코드입니다.이 리포지토리에서 얻은 코드 : github 작곡가를 통해 Twig를 포함하기 때문에이 코드에서 약간 수정했습니다. 이 수정 사항은 중요하지 않기 때문에 설명하지 않겠습니다.

So. 보기의 내 디렉토리 구조는 매우 간단하다 :보기의

app 
- views 
--- index.twig 
--- about 
---- index.twig 

소스/index.twig :보기의

<html> 
<head> 
    <title>Phalcon PHP Framework</title> 
</head> 
<body> 
    {% block content 'This is main page' %} 
</body> 
</html> 

그리고 소스/약/index.twig :

{% extends "index.twig" %} 

{% block content %} 
    This is About page 
{% endblock %} 

또한 , I 단일 방법 (AboutController.php)에 대하여 컨트롤러가

public function indexAction() 
,745,

비어 있습니다.

확인. 지금. 내가 /에 대해이 페이지에 대한 요청을 할 때 나는이 같은 것을 볼 것으로 예상 :

This is About page 

을하지만 난 여전히 뷰/index.twig의이 내용을 참조하십시오

This is main page 

그것은 조금 이상하다을 나에게. 블록 "콘텐츠"를 재 할당합니다!

나는 몇 가지 템플릿보기/블록에서 추가 문자를 추가하는 방법에 대한/index.twig에 확인을했고, 나는 나뭇 가지에서 오류 접수 :

A template that extends another one cannot have a body in "about/index.twig" 

겠어요 -을 어떤 아이디어?

P. 나는 TPL보기/index.twig 방법 {{컨텐츠()}}하지만 나뭇 가지가이 방법에 대한 아무것도 알고에 전화를한다고 생각합니다.

+1

당신은 볼트를 사용하지 않는 이유는 무엇입니까? Twig와 같은 문법이 실제로 Phalcon의 기본 구문입니다. –

+0

이유 중 하나는 내가 템플릿의 function {{content()}}이 자식의 내용을 표시하기 위해 어떤 목적으로 구현되었는지 이해할 수 없다는 것입니다. 어쩌면 나는이 능력을 완전히 이해하지 못할 수도 있지만, 나는 그것이 헛소리라고 생각한다. – Stmol

답변

0

문제는 그 문서를 읽을 충분하지이었다이었다!

내가보기 구성 요소 템플릿의 수준을 렌더링 사용했다 나의 문제를 해결하기 : official docs

가 나뭇 가지에 내보내기 기능 내장이 엔진의 상속의 강력한 메커니즘을 사용, 우리가 설정해야 사용을 레벨 렌더링 :

이 경우 엔진은 템플릿 동작의 내용을 즉시 처리합니다.

0

사용 {{내용 |} 원시}

Index.twig :

<h1>Title</h1> 
{{ content|raw }} 

액션보기 : 호기심에서

<h2>Title 2</h2> 
관련 문제