Итак, у меня есть эта простая форма:
class CreditType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('credits', EntityType::class, [
'class' => Product::class,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('product')
->orderBy('product.amount');
},
'expanded' => true,
'choice_label' => function ($key) {
return $key->amount.' credits voor maar '.$key->price;
}
]);
}
}
, которую я использую в следующем контроллере:
public function credits(Request $request)
{
$form = $this->createForm(CreditType::class);
$form->handleRequest($request);
if ($form->isSubmitted()) {
throw new \Exception('It works!');
}
return $this->render(
'credits/credits_widget.html.twig',
[
'form' => $form->createView(),
]
);
}
И использую это в моем XXX.html.twig
{{ render(controller('App\\Controller\\DetailsController:credits')) }}
Я работаю с Symfony уже 4 недели, так что не так долго.
Я хочу вызывать некоторые функции, когда форма отправляется только то, что я помещаю в оператор if работает, она не выдает никаких исключений в данный момент.Я что-то не вижу или это невозможно сделать при рендеринге формы?
РЕДАКТИРОВАТЬ: мой credits_widget.html.twig
{% block credits %}
{{ form_start(form.credits) }}
{{ form_widget(form.credits) }}
{% if app.user %}
<button type="submit">Koop nu!</button>
{% else %}
<a href="#login-form"><button type="button">Login en koop</button></a>
<a href="{{ path('user_registration') }}"><button type="button">Registreer en koop</button></a>
{% endif %}
{{ form_end(form.credits) }}
{% endblock %}