양식의 경우 중첩을 위해 프런트엔드 디자인 페이지를 사용할 수 있나요? 아니면 FormBuilder만 사용하여 양식을 만들 수 있나요? 내가 작성한 페이지에 게시된 데이터를 어떻게 확인하고 처리하나요?
漂亮男人2017-05-16 16:45:53
FormBuilder를 사용하여 양식을 만드는 것이 더 낫다고 생각합니다
CSRF 공격을 방지하는 토큰이 있습니다
객체를 결합하여 데이터를 얻는 것이 더 편리합니다
검증이 더 편리해졌습니다
처음 접하실 땐 FormBuilder가 좀 번거롭다고 느끼실 수도 있지만, 익숙해지고 나면 꽤 사용하기 쉬운 것 같아요
怪我咯2017-05-16 16:45:53
실제로 원하는 레이아웃이 무엇이든 맞춤설정할 수 있고, 양식의 테마도 수정할 수 있으며, 일부 필드도 직접 만들어 보면 확인해 볼 수 있습니다. 당신 자신!
PHP中文网2017-05-16 16:45:53
먼저 두 가지 질문에 답하려면 프런트 엔드에 디자인된 페이지를 사용하여 매우 복잡한 양식을 만들 수 있습니다. FormBuilder가 반드시 필요한 것은 아닙니다.
세 번째 질문인 @xxfaxy님이 직접 검증해야 한다고 하더군요. 제 생각엔 Symfony에서 Validation 컴포넌트를 제공한다고 해서 완전히 자체 검증은 아닌 것 같아요. Symfony 공식 웹사이트를 참조하여 페이지 끝으로 스크롤한 후 Validating Values and Arrays 섹션을 살펴보세요.
프레임워크가 많은 기능을 제공하지만, 그 기능은 결국 어떤 특별한 경우에는 프레임워크에 국한되지 않는다고 생각합니다.
迷茫2017-05-16 16:45:53
물론이죠!
실제로 질문의 핵심은 게시물 데이터(배열 유형)를 엔터티(엔티티 유형)에 매핑하는 방법입니다.
Form은 엔터티 및 요청 개체의 추상화입니다. 즉, 엔터티의 사용자 이름이 양식 구성 요소에 의해 추상화된 후 출력은 <input name="entityName[property]" /> 여기서 Property는 엔터티의 속성(필드 이름)입니다. 핸들 요청 중에 프런트 엔드에서 제출된 값은 엔터티의 속성 속성에 자동으로 매핑됩니다. Form은 엔터티를 대화형으로 만들기 위한 것입니다.
Form 구성 요소를 사용하지 않으면 어떻게 되나요?
Symfony는 배열을 엔터티에 매핑할 수도 있는 Serializer 구성 요소도 제공합니다.
프런트 엔드 페이지:
으아악귀하의 법인:
으아악FORM을 엔터티에 매핑:
으아악양식을 사용하는 것과 마찬가지로 엔터티를 인증합니다.
으아악참조: http://symfony.com/doc/current/comComponents/serializer.html#deserializing-an-object