mirror of
https://github.com/alrayyes/wiki.git
synced 2024-12-01 15:26:23 +00:00
44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
|
---
|
||
|
id: 7d7fc5e8-0fcd-47d7-8857-3f499655d7f2
|
||
|
title: Callback Functions To Get/Set Form Fields
|
||
|
---
|
||
|
|
||
|
# Description
|
||
|
|
||
|
Use callback functions to get/set form fields. Data mapper is no longer
|
||
|
needed when getter/setter methods don't directly correlate to property
|
||
|
names.
|
||
|
|
||
|
# Syntax
|
||
|
|
||
|
``` php
|
||
|
// src/Form/Type/ProductType.php
|
||
|
namespace App\Form\Type;
|
||
|
|
||
|
use App\Entity\Person;
|
||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||
|
use Symfony\Component\Form\FormInterface;
|
||
|
|
||
|
class PersonType extends AbstractType
|
||
|
{
|
||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||
|
{
|
||
|
$builder
|
||
|
->add('name', TextType::class, [
|
||
|
'getter' => function (Person $person, FormInterface $form): string {
|
||
|
return $person->getUserData()->getFirstName();
|
||
|
},
|
||
|
'setter' => function (Person &$person, ?string $name, FormInterface $form): void {
|
||
|
$person->rename($name);
|
||
|
},
|
||
|
])
|
||
|
|
||
|
// ...
|
||
|
;
|
||
|
}
|
||
|
|
||
|
// ...
|
||
|
}
|
||
|
```
|