Skip to content

Commit 40d7ae5

Browse files
committed
Fix locale code transformation
1 parent f19c9e4 commit 40d7ae5

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/Form/Type/RestockNotificationAdminRequestType.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,27 @@
66

77
use Sylius\Bundle\ChannelBundle\Form\Type\ChannelChoiceType;
88
use Sylius\Bundle\LocaleBundle\Form\Type\LocaleChoiceType;
9+
use Sylius\Bundle\ResourceBundle\Form\DataTransformer\ResourceToIdentifierTransformer;
910
use Sylius\Bundle\ResourceBundle\Form\Type\AbstractResourceType;
11+
use Sylius\Component\Resource\Repository\RepositoryInterface;
1012
use Symfony\Component\Form\Extension\Core\Type\EmailType;
1113
use Symfony\Component\Form\FormBuilderInterface;
14+
use Symfony\Component\Form\ReversedTransformer;
1215

1316
final class RestockNotificationAdminRequestType extends AbstractResourceType
1417
{
18+
/**
19+
* @param class-string $dataClass
20+
* @param list<string> $validationGroups
21+
*/
22+
public function __construct(
23+
private readonly RepositoryInterface $localeRepository,
24+
string $dataClass,
25+
array $validationGroups = [],
26+
) {
27+
parent::__construct($dataClass, $validationGroups);
28+
}
29+
1530
public function buildForm(FormBuilderInterface $builder, array $options): void
1631
{
1732
parent::buildForm($builder, $options);
@@ -29,7 +44,10 @@ public function buildForm(FormBuilderInterface $builder, array $options): void
2944
])
3045
->add('email', EmailType::class, [
3146
'label' => 'sylius.ui.email',
32-
])
33-
;
47+
]);
48+
49+
$builder->get('localeCode')->addModelTransformer(
50+
new ReversedTransformer(new ResourceToIdentifierTransformer($this->localeRepository, 'code')),
51+
);
3452
}
3553
}

src/Resources/config/services/form.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
<services>
1212
<service id="Setono\SyliusRestockNotificationPlugin\Form\Type\RestockNotificationAdminRequestType">
13+
<argument type="service" id="sylius.repository.locale"/>
1314
<argument>%setono_sylius_restock_notification.model.restock_notification_request.class%</argument>
1415
<argument>%setono_sylius_restock_notification.form_type.restock_notification_request.validation_groups%</argument>
1516

0 commit comments

Comments
 (0)