表单标签中的 Symfony 路由器 link
Symfony router link in form label
我正在寻找在 Symfony 5 表单标签中嵌入路由器 link 的可能性。
我需要在注册表格类型的 使用条款 页面中添加 link。
这是我的部分代码:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// some code
->add('terms', CheckboxType::class, [
'label' => 'I accept <a href="/terms" target="_blank">Terms of use</a>', // <= here I need router link instead of '/terms'
'label_attr' => [
'class' => 'form-check-label'
],
'label_html' => true,
'mapped' => false
])
//some other code
;
}
我知道,我可以使用 TWIG,但我正在寻找 PHP 的可能性 ;)
您可以在您的 FormType 中注入路由器并用它生成 link。
class FormType extends AbstractType{
private $router;
function __construct(RouterInterface $router){
$this->router = $router;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$tosUrl = $this->router->generate('terms');
$builder
// some code
->add('terms', CheckboxType::class, [
'label' => 'I accept <a href="' . $tosUrl .'" target="_blank">Terms of use</a>',
'label_attr' => [
'class' => 'form-check-label'
],
'label_html' => true,
'mapped' => false
])
//some other code
;
}
}
我正在寻找在 Symfony 5 表单标签中嵌入路由器 link 的可能性。 我需要在注册表格类型的 使用条款 页面中添加 link。
这是我的部分代码:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// some code
->add('terms', CheckboxType::class, [
'label' => 'I accept <a href="/terms" target="_blank">Terms of use</a>', // <= here I need router link instead of '/terms'
'label_attr' => [
'class' => 'form-check-label'
],
'label_html' => true,
'mapped' => false
])
//some other code
;
}
我知道,我可以使用 TWIG,但我正在寻找 PHP 的可能性 ;)
您可以在您的 FormType 中注入路由器并用它生成 link。
class FormType extends AbstractType{
private $router;
function __construct(RouterInterface $router){
$this->router = $router;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$tosUrl = $this->router->generate('terms');
$builder
// some code
->add('terms', CheckboxType::class, [
'label' => 'I accept <a href="' . $tosUrl .'" target="_blank">Terms of use</a>',
'label_attr' => [
'class' => 'form-check-label'
],
'label_html' => true,
'mapped' => false
])
//some other code
;
}
}