2014-04-30 1 views
0

나는이 토론 (click here)을 읽었으며 '알 수 없음'을 함수에 전달하겠다는 제안을 따라 갔지만 작동하지 않습니다.수동으로 Symfony2/Twig에서 양식을 만들고 CSRF 및 isValid 기능을 사용하는 방법은 무엇입니까?

양식을 제출 한 후 양식이 isValid 검사를 통과하지 못합니다.

이것은 내가 내 컨트롤러에 사용되는 것입니다 : 나는 또한 함수에 값을 제공하지 시도하지만 나에게 오류를주고

$token = $this->get('form.csrf_provider')->generateCsrfToken('unknown'); 

. 나는 값을 제공하지 않기를 희망 했었습니다. Symfony가 기본적으로 사용하는 것을 사용합니다.

나는 generateCrsfToken 함수와 함께 사용할 수있는 의도 목록을 인터넷에서 검색했으며, 내가 제공하는 텍스트가 arbritary 인 것 같습니다. Symfony가 자동으로 토큰을 생성 할 때 (즉 {{form (form)}을 사용하여 양식을 렌더링 할 때) 사용하는 기본 의도를 찾으려고 시도했지만 해당 정보를 찾을 수 없습니다.

도움을 주시면 대단히 감사하겠습니다. 덕분에 많은

답변

0

내가 내 폼 클래스에 해당 코드를 추가하고 같은 의도 값을 사용 심포니 양식 문서

use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class TaskType extends AbstractType 
{ 
    // ... 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class'  => 'Acme\TaskBundle\Entity\Task', 
      'csrf_protection' => true, 
      'csrf_field_name' => '_token', 
      // a unique key to help generate the secret token 
      'intention'  => 'task_item', 
     )); 
    } 

    // ... 
} 

에서이 코드를 발견 (즉 "task_item")는 generateCsrfToken를 사용하여, 그것은 작동 . :)

내 질문을 읽은 사람들 덕택입니다. :)

관련 문제