2013-11-01 2 views
0

현재 양식을 만들기 위해 Silex2 FormFactory를 사용하고 있는데 문제가 발생했습니다.Silex double form

전자 메일과 암호를 묻는 로그인 페이지 (login.twig)가 있습니다. 이 양식에는 검증이 포함됩니다. 하지만 내 머리글에이 로그인 양식을 항상 갖고 싶습니다 (내 layout.twig에서). 양식을 작성하고 조치를 로그인 페이지의 위치에 링크했습니다. 각 입력 요소의 올바른 ID와 이름을 수동으로 써야했고 폼 내에 login.twig의 생성 된 토큰을 복사했습니다. 그러나 이것이 올바른 방법이라고 생각하지 않습니다.

<form class="navbar-form pull-right" action="{{ path('auth.login') }}" method="post" novalidate="novalidate">{# disables HTML5 formchecking #} 
    <input class="span2" type="text" id="loginform_email" name="loginform[email]" placeholder="Email"> 
    <input class="span2" type="password" id="loginform_password" name="loginform[password]" placeholder="Password"> 
    <input id="loginform__token" type="hidden" value="9eb2a291d32d114987aee1548da878201dd79a7b" name="loginform[_token]"> 
    <button class="btn" type="submit">Sign in</button> 
    <a href="{{ path('auth.register') }}">register here</a> 
</form> 

답변

0

동일한 양식의 고유 인스턴스이고 다르게 참조되는 한 괜찮습니다.

그러나 로그인 페이지의 헤더에서 로그인 양식을 숨기려면 유용성을 이유로 제안하십시오. 당신은 경로의 이름을 확인하고 아마 전역 변수로 설정할 수 있습니다 : 템플릿에서 다음

$app->before(function (Request $request) { 
    $app['twig']->addGlobal('currentRoute', $request->get('_route')); 
}); 

:

{% if currentRoute != 'auth.login') %} 
    // output your form here 
{% endif %}