Version 1 (modified by blerou, 10 years ago)
Note Az sfForm osztály minden űrlap ősosztálya, mely lehetővé teszi azok egyszerű kezelését és konfigurálást.
Note Megegyezés szerint a form osztályok a lib/form/ könyvtárban találhatók. Igazság szerint az űrlapok bárhol tárolhatók, ahol a symfony autoloading mechanizmusa megtalálja azokat, de később látni fogjuk, hogy a rendszer a lib/form/ könyvtárba hozza létre a model objektumokból generált űrlapokat.
Figure 1-4 - Generated Contact Form 1-4 ábra - Generált kapcsolat űrlap
Listing 1-4 Shows the generated code by the template. 1-4 jegyzet A template által generált kód
Azt láthatjuk, hogy az űrlap egy HTML táblázat három <tr> sorban jelenik meg. Ezért tettük az egészet egy <table> tagba. Minden sor tartalmaz egy <label> taget és egy űrlap taget (<input> vagy <textarea>).
Minden mezőhöz automatikusan létrejön egy cimke. Alapbeállításban a cimke nevet a mező nevéből képzi a rendszer a következő szabályok alapján: az első betű nagy betű, az aláhúzások cseréje szóközökkel. Példa:
Sidebar Widget Séma
Even if the form display is an HTML table by default, the layout format can be changed. These different types of layout formats are defined in classes inheriting from sfWidgetFormSchemaFormatter. By default, a form uses the table format as defined in the sfWidgetFormSchemaFormatterTable class. You can also use the list format: Habár az űrlap HTML táblázatként jelenik meg alapból, a layout megváltoztatható.
Note http_build_query is a built-in PHP function that generates a URL-encoded query string from an array of parameters.
Tip You might have noticed that executeSubmit() is different from executeIndex(). When calling these methods symfony passes the current sfRequest object as the first argument to the executeXXX() methods. With PHP, you do not have to collect all parameters, that is why we did not define the request variable in executeIndex() since we do not need it.
Note When redisplaying the user input in the template, we run the risk of a XSS (Cross-Site Scripting) attack. You can find further information on how to prevent the XSS risk by implementing an escaping strategy in the Inside the View Layer chapter of "The Definitive Guide to symfony" book.
Note We recommend to define HTML attributes inside the template and not in the form itself (even if it is possible) to preserve the layers of separation as we will see in Chapter three.
SIDEBAR Protection XSS (Cross-Site Scripting)