Symfony
gobelins
Dans les frameworks, on fait la différence entre un formulaire et un champ de formulaire.
En symfony, un formulaire et un champ de formulaire, c'est la même chose.
On a ici le design pattern Composite
Lorsqu'on crée un formulaire, on crée un type.
Exemples de types :
Il y a aussi un type SubmitType particulier qui va créer le bouton de soumission du formulaire.
Pour créer un nouveau formulaire, il faut créer une classe spécifique que l'on va appeler dans le controller. Le controller doit uniquement appeler la classe, et non construire le formulaire.
Les classes sont dans le dossier App/Form/Type.
Exemple :
class TaskType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('task', TextType::class)
->add('dueDate', DateType::class)
->add('save', SubmitType::class)
;
}
}
class TaskController extends AbstractController
{
public function new()
{
// [FACULTATIF] creates a task object and initializes some data for this example
$task = new Task();
$task->setTask('Write a blog post');
$task->setDueDate(new \DateTime('tomorrow'));
$form = $this->createForm(TaskType::class, $task);
// ...
}
}
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
Avec cette construction, on peut facilement imaginer utiliser des formulaires imbriqués, puisqu'un formulaire est un type, et qu'on utilise les types dans les formulaires.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing