2012-04-26 3 views
3

Silex 응용 프로그램에서 Symfony와 Twig를 사용하고 있습니다. 존재하지 않는 "트랜스"필터 :Symfony Forms, Twig 및 SymfonyTwigBridge를 사용할 때 기본 템플릿을 덮어 쓰려면 어떻게합니까?

Twig_Error_Syntax : 페이지를 렌더링 할 때 나는 다음과 같은 오류가

{% extends "base.twig" %} 

{% block title %}Welcome to My Example site{% endblock %} 
{% block head %} 
{{ parent() }} 
{% endblock %} 
{% block content %} 

<div class="row"> 
<div class="span12"> 
    <h2>Register</h2> 
    <p> 
     Register for this site and we'll give you free access to cool stuff 
     in addition you can subscribe to our premium content. 
    </p> 

    <form action="{{app.config.site.secureUrl}}/register-handler" method="post"> 
     <fieldset > 
      {{ form_widget(form) }} 
      <button type="submit" class="btn btn-info">Send</button> 
     </fieldset> 
    </form> 
</div> 
</div> 

</div> 

{% endblock %} 

:

나는에서 양식 등록 페이지가 "form_div_layout.html.twig"35 행

Symfony 번역 확장 프로그램이 설치되지 않았으므로이를 기본값으로 설정했습니다 템플릿은 다음 위치에 있습니다.

vendor\symfony\twigbridge\Symfony\Bridge\Twig\Resources\views\Form\form_div_layout.html.twig 

올바르게 렌더링되지 않습니다.

나는으로 번역 기능이없는 위의 하나를 기반으로 새 템플릿을했습니다.

가 어떻게 나뭇 가지가 새 템플릿 대신 기본 하나를 사용하려면 어떻게해야합니까 질문?

답변

6

, 당신은 당신이 나뭇 가지를 등록 할 때 옵션에서 지정해야 더 나은 원래 템플릿을 사용하고이 같은 번역 업체 등록 :

$app->register(new Silex\Provider\TranslationServiceProvider(), array(
     'locale' => '[Your_locale]', 
     'translation.class_path' => __DIR__ . '/../vendor/symfony/src', 
     'translator.messages' => array() 
)) ; 

및 유효성 검사를 사용하는 경우이 cookbo을 읽을 것을 잊지 마세요 확인 :이 도움이 될 것입니다

Translation cookbook

희망.

+0

' 'twig.form.templates''는 올바른 열쇠가 아니 었습니다. ''twig.form.resources''를 대신 사용했습니다. http://symfony.com/doc/master/cookbook/form/form_customization.html#making-application-wide-customizations를 참조하십시오. – edan

1

SymfonyBridgesServiceProviderTranslationServiceProvider을 등록해야합니다.

그게 당신에게 트랜스 필터를주고 초기 문제를 해결해야합니다.

$app->register(new Silex\Provider\TwigServiceProvider(), array(
     'twig.path' => __DIR__ . '/[Path_to_views_directory]', 
     'twig.class_path' => __DIR__ . '/vendor/twig/lib', 
     'twig.form.templates' => array([path_to_your_overriden_template]), 
)) ; 

이 문서를 참조하십시오 : TwigProvider documentation

을하지만 내가 생각하는 당신이 양식에 대한 자신의 템플릿을 사용하려면

+0

위대한 답변입니다. 고맙습니다. –

+0

링크가 사라진 것처럼 보입니까? – kaiser

+0

첫 번째 링크가 죽었습니다. – Trix