symfony 엔티티와 형식은보다 효율적인 접근 방식을 제공합니다. 여기에는 Symfony Entity를위한 양식을 작성하고 Symfony Form Builder를 사용하고 양식 구성, 이름 지정 및 기본 옵션을위한 방법을 정의하는 것이 포함됩니다. 이 양식은 컨트롤러 방법을 통해 구축 및 표시됩니다
Symfony의 양식 시스템은 유연하여 다양한 요구에 적응합니다. 데이터베이스 관련 CRUD 작업의 경우 Symfony Form 시스템이 선호됩니다. 단순하고 비기능적인 형태의 경우,보기에 직접 HTML 임베딩이 충분합니다.
비 엔티티 양식 :
이 예제는 Symfony View 파일 내에서 표준 HTML로 정의 된 처리 양식을 보여줍니다. 프로세스에는 세 단계가 포함됩니다 :
파일보기 생성보기 : a 파일 (에 위치)은 양식의 html을 포함합니다 :
컨트롤러 메소드 : -
는 메소드를 포함합니다
-
경로 정의 : - 파일 (in )에는 다음이 포함됩니다
이지도 메소드
이 접근법은 기능적이지만 복잡한 형태 나 데이터 지속성에 적합하지 않습니다.
Symfony Entities and Forms :
이 섹션에서는 Symfony Entity (예 : )를위한 양식을 작성하고 처리하는 것을 보여줍니다. 우리는 컨트롤러,
, 2 개의 뷰 파일 (, ) 및 양식 유형 클래스의 5 가지 파일을 사용합니다.
articletype.php : - ()
src/Acme/DemoBundle/Form
welcomecontroller :
<code class="language-twig">{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block content %}
<h1>Form values</h1>
{% if name is defined %}
<p>Name: {{ name }} </p>
{% endif %}
<form method="post" action="%7B%7B%20path('_form1')%20%7D%7D">
<label for="name">Name:</label>
<input type="text" id="name" name="name"><br>
<input type="submit" name="submit" value="Submit">
</form>
{% endblock %}</code>
form2.html.twig : -
form2saved.html.twig : <code class="language-php">use Symfony\Component\HttpFoundation\Request;
// ... other code ...
public function form1Action(Request $request)
{
$name = 'Not submitted yet';
if ($request->isMethod('POST') && $request->request->has('submit')) {
$name = $request->request->get('name');
}
return $this->render('AcmeDemoBundle:Welcome:form1.html.twig', ['name' => $name]);
}</code>
-
Routing.yml :
이 접근법은 Symfony의 기능을 활용하여보다 강력하고 유지 관리 가능한 솔루션을 활용합니다. 양식의 복잡성 및 데이터 처리 요구에 가장 적합한 방법을 선택하십시오. 복잡한 양식 또는 데이터베이스 상호 작용의 경우 엔티티/양식 접근 방식을 강력하게 권장합니다.