Witam.
Mam w formularzu Symfony listę wyboru określającą zakres wieku.
Stworzyłem do tego typ:
class AgeRangeType extends AbstractType
{
const AGE_TYPE_YOUNG = 0;
const AGE_TYPE_MIDDLE = 1;
const AGE_TYPE_OLD = 2;
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'choices' => [
'18-25' => self::AGE_TYPE_YOUNG,
'26-50' => self::RESPONSE_TYPE_MAIL,
'51-...' => self::AGE_TYPE_OLD
]
]);
}
public function getParent(): string
{
return ChoiceType::class;
}
}
I użyłem go przy budowaniu formularza:
$builder
->add('name')
->add('age', AgeRangeType::class)
Formularz poprawnie zwraca mi wartość od 0 do 2.
Teraz chciałbym wykorzystac zwrócone z formularza wartości do wyświetlenia strony "powitanej".
I tu pojawia się problem:
nie mam pomysłu jak w twig'u
zrobić warunek, żeby w zależności od wybranego wieku pokazywało się inne powitanie.
W kontrolerze pobieram dane z formularza i przekazuje je do widoku:
$personData = $form->getData();
return $this->render('main/greetingTemplate.html.twig', [
'data' => $personData
]);
I teraz w widoku w zależności od wartości data.age
chcę wyświetlić "Cześć" lub "Dzień dobry".
Mógłbym to zrobić "na sztywno":
{% if data.age == 0 %}
<h1>CZEŚĆ</h1>
{% else %}
<h1>DZIEŃ DOBRY</h1>
{% endif %}
Jednak wydaje mi się to nieeleganckie.
Zastanawiam się czy jest sposób aby warunek zapisać to jakoś analogicznie jak w php:
{% if data.age == AgeRangeType::AGE_TYPE_YOUNG %}
?
Z góry dziękuję za pomoc.